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 在性能和用户体验上都有很大的改善,推荐使用。

你可能感兴趣的:(ListView优化)