ListView性能优化——convertView&viewHolder
来源:互联网 发布:雷洋事件知乎 编辑:程序博客网 时间:2024/06/06 10:41
1.复用已经生成的convertView;
2.添加viewHolder类;
3.缓存数据(图片缓存);
4.分页加载。
具体方案:
1、如果自定义适配器,那么在getView方法中要考虑方法传进来的参数contentView是否为null,如果为null就创建contentView并返回,如果不为null则直接使用。在这个方法中尽可能少创建view。
2、给contentView设置tag(setTag()),传入一个viewHolder对象,用于缓存要显示的数据,可以达到图像数据异步加载的效果。
3、如果listview需要显示的item很多,就要考虑分页加载。比如一共要显示100条或者更多的时候,我们可以考虑先加载20条,等用户拉到列表底部的时候再去加载接下来的20条。
item高度问题
ListView一般item高度都是固定的,但也存在着item高度不固定的情况,譬如微博、微信、QQ空间的消息展示页面,那么在ListView的adapter运行上就会有细微差别:
因为没有固定的Item高度,无法计算一个屏幕中能够显示的最大高度,系统会会先创建一个View,第一轮是用这个View来试探能放多少个item,试探出结果可以放3个Item,所以第二轮的0-2才是真正创建的View,屏幕上显示了3个Item。当往下滚时,Item0没有完全出去,下面有来了个Item3,所以这时的Item有创建了一个View,屏幕上此时显示4个Item。之后4个Item就是做多显示的数量,再往上滚动,convertView就开始重用了,Item4和Item0的View是一个对象。其中的差别在于item的初始化数和最大运行数不一定一样。
http://blog.fangjie.info/2014/05/14/ListView的性能优化之convertView和viewHolder/
http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html
http://android.amberfog.com/?p=296
- ListView性能优化——convertView&viewHolder
- ListView性能优化之convertView和ViewHolder
- ListView的性能优化-convertView和viewHolder
- ListView的优化:convertView + viewHolder
- Listview优化之convertView,viewHolder
- ListView的性能优化之convertView和viewHolder
- ListView的性能优化之convertView和viewHolder
- ListView的性能优化之convertView和viewHolder
- ListView的性能优化之convertView和viewHolder
- ListView的性能优化之convertView和viewHolder
- ListView的性能优化之convertView和viewHolder
- ListView的性能优化之convertView和viewHolder
- ListView的性能优化之convertView和viewHolder
- ListView的性能优化之convertView和viewHolder
- ListView的性能优化之convertView和viewHolder
- 关于ListView使用ConvertView和ViewHolder实现性能优化
- ListView的性能优化之convertView和viewHolder
- ListView的性能优化之convertView和viewHolder
- Android动画原理
- 内存溢出(Oom)和内存泄露(Memory leak)
- Android进程管理
- Android四种跨进程通信
- Android五种数据存储方式
- ListView性能优化——convertView&viewHolder
- 基于appcan平台开发一个简单的手机app--登录注册例子
- java调用python
- res/raw与assets目录的区别
- UI的线程问题:单线程原因及更新UI的四种方式
- 安装Android studio的过程
- ANR机制
- 四大组件之BroadcastReceiver
- zookeeper启动失败