Listview的优化

来源:互联网 发布:js正则表达式邮箱验证 编辑:程序博客网 时间:2024/06/06 19:25

在适配器中,getview()中:

1.复用convertView

2.使用ViewHolder

3.Item布局层级越少越好,使用hierarchyview工具查看优化

(一般要求渲染绘制的时间在16ms内,保证画面流畅的感觉。每个view都要经历onMeasure()(尺寸),onLayout()(位置),onDraw()的过程。所有view的这三者时间相加就是总的时间。

以下是三点要注意的:

    1.measure会从最顶部的view开始,子view向父view提供自己的尺寸以决定自己的位置,如果遇到了冲突,那么父view会要求子view重新measure,这就会消耗比一次measure多两三倍的时间。这也是为什么扁平话结构比较好的原因,它可以避免这类问题的产生。

    2.Remeasure不只发生在以上情形,RelativeLayout通常需要measure所有子节点两次才能把子节点合理的布局,LinearLayout如果设置了layout_weight属性,也需要measure两次,RelativeLayout和LinearLayout如果嵌套使用,measure花费的时间可能会以指数级的增加

   3.并不是只有用户看到的view才被渲染,而是拥有的所用的view都会被渲染,所以我们要尽量移除不需要渲染的view

4.item中有图片的时候使用异步加载

5.item中的图片进行适当的压缩

5.快速滑动的时候不加载图片

6.数据多时实现分页加载

0 0