ListView优化

1.最简单的优化就是在我们自定义适配器的getView方法中判断convertView传进来的参数是否为空,假如是null就创建布局,假如不为null则直接重用该布局,这也是android给listview的提供的一种缓存机制.

2.使用ViewHolder缓存每个item条目的引用,在convertView为null的时候,我们要inflate出来一个view,并且还需要进行findViewById的查找工作,把findViewById的结果赋值给ViewHolder类中的成员变量,最后将holder对象与view绑定在一块.当contentView不为null的时候,我们让holder=contentView,取出view对应的holder对象进行复用,我们就不用在进行findViewById的操作了。

3.利用好viewType,假如列表有几种不同类型的item,我们就需要创建不同的view,有利于ListView的回收.当然类型不能太多.

4.尽量让item view的布局层次结构简单,因为布局过深会直接导致View的测量和绘制浪费大量的时间.

5.每个item宽度不能太高,特别不能超过屏幕的高度

6.为了保证 ListView 滑动的流畅性,getView() 中要做尽量少的事情,不要有耗时的操作。特别是滑动的时候不要加载图片,停下来再加载。

7.用 RecycleView 代替。 ListView 每次更新数据都要 notifyDataSetChanged(),有些太暴力了。RecycleView 在性能和用户体验上都有很大的改善,推荐使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容