定义的getView执行多次的ListView布局:

  1. <ListView
  2. android:id="@+id/lv_messages"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:layout_alignParentLeft="true"
  6. android:layout_below="@+id/linearLayout1"
  7. android:cacheColorHint="#0000"
  8. android:divider="#0000"
  9. android:dividerHeight="2dp"
  10. android:listSelector="#0000" >
  11. </ListView>

执行多次原因是因为每显示一个VIew,它都去测量view的高度,执行measure方法,导致getView执行多次。

正确的布局:

  1. <ListView
  2. android:id="@+id/lv_messages"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:layout_alignParentLeft="true"
  6. android:layout_below="@+id/linearLayout1"
  7. android:cacheColorHint="#0000"
  8. android:divider="#0000"
  9. android:dividerHeight="2dp"
  10. android:listSelector="#0000" >
  11. </ListView>

把width和height都设置成fill_parent,如果ListView有父布局,也把父布局的width和height设置成fill_parent,这样就成功的解决了自定义适配器getView 执行多次的问题。

下面这3行可以解决ListView滑动变黑的问题:

  1. android:cacheColorHint="#0000"
  2. android:divider="#0000"
  3. android:listSelector="#0000"

希望可以帮助到大家解决问题!

android-继承BaseAdapter--自定义适配器,getView执行多次的解决方法的更多相关文章

  1. BaseAdapter自定义适配器——思路详解

    BaseAdapter自定义适配器——思路详解 引言: Adapter用来把数据绑定到扩展了AdapterView类的视图组.系统自带了几个原生的Adapter. 由于原生的Adapter视图功能太少 ...

  2. Android 打开方式选定后默认了改不回来?解决方法(三星s7为例)

    Android 打开方式选定后默认了改不回来?解决方法(三星s7为例) 刚刚在测试东西,打开一个gif图,然后我故意选择用支付宝打开,然后...支付宝当然不支持,我觉得第二次打开它应该还会问我,没想到 ...

  3. Android Studio2.x版本无法自动关联源码的解决方法

    Android Studio2.x版本无法自动关联源码的解决方法 在学习android开发过程中,对于一个不熟悉的类,阅读源码是一个很好的学习方式,使用andorid studio开发工具的SDK M ...

  4. android Run模式也会出现"Waiting for debugger"的解决方法

    android Run模式也会出现"Waiting for debugger"的解决方法 出现“waiting for debugger”窗口是在debug模式下运行出现的.但是, ...

  5. Android -- ListView(SimpleAdapter) 自定义适配器

    aaarticlea/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA ...

  6. BaseAdapter自定义适配器

    listview = (ListView) findViewById(R.id.listview); imageview = (ImageView) findViewById(R.id.imagevi ...

  7. Android继承BaseAdapter时要重写的函数的说明

    原文来自:http://www.2cto.com/kf/201405/299601.html,我自己做了一些修改 Android中继承BaseAdapter后需要重写四个函数,但一般还要写一个构造函数 ...

  8. android-继承BaseAdapter--自己定义适配器,getView运行多次的解决方法

    定义的getView运行多次的ListView布局: <ListView android:id="@+id/lv_messages" android:layout_width ...

  9. android 之 ListView 里面嵌套 GridView 遇到的问题及其解决方法。

    我们直接入主题.所有问题例子请参照下图 1,怎样使图片具有点击事件? 答: 解决方法: 在你的BaseAdapter里面不要设置下面这三个东西,然后再设置GridView的onItemClick. g ...

随机推荐

  1. 用 javascript 判断 IE 版本号

    原文地址: http://julying.com/blog/determine-the-version-number-of-ie-with-javascript/ var _IE = (functio ...

  2. 使用gdb调试(转: http://www.cnblogs.com/luchen927/archive/2012/02/07/2339003.html)

    一般来说GDB主要调试的是C/C++的程序.要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中.使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点.如: > ...

  3. Centos7下Intel与AMD双显卡驱动的安装

      前2天,在Nvidia单显卡上成功安装上了NVIdia的驱动,一时兴起,拿出另外的一个HP笔记本也准备装上驱动,悲催的是HP的显卡是AMD的,更加.更加悲催的是还是Intel+AMD的双显卡.网络 ...

  4. Spring4.0学习笔记(11) —— Spring AspectJ 的五种通知

    Spring AspectJ 一.基于注解的方式配置通知 1.额外引入的jar包: a) com.springsource.org.aopalliance-1.0.0.jar b) com.sprin ...

  5. javascript获得给定日期的前一天的日期

    /** * 获得当前日期的前一天 */ function getYestoday(date){ var yesterday_milliseconds=date.getTime()-1000*60*60 ...

  6. [jQuery编程挑战]002:实现一个转盘大抽奖

    body { background-color: #F2F2F2; text-align: center; } .container { position: relative; width: 500p ...

  7. 002-C语言概览

    C语言 关键字: 32个关键字,全是小写 auto double int struct break else long switch case enum register typedef char e ...

  8. laravel框架——学习笔记

    routes.php文件创建路由参数由{}包起来,不需要$ Route::get('/stu/{as}','StuController@show'); 在相对应的Controller创建funcito ...

  9. (未解决)问题记录ionic android 签名之后安装到手机上点击运行出现闪退,不签名运行正常

    Log日志如下: - ::): error opening trace ) - ::): FATAL EXCEPTION: main - ::): java.lang.RuntimeException ...

  10. -_-#【Better Code】字符串匹配

    提高 web 应用性能之 JavaScript 性能调优