Listview的优化

在适配器中,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.数据多时实现分页加载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值