优化listview的方法

从知乎整理,感谢所有的参与者!

1.      在getView中,多个点击事件可以共用一个OnClickListener,避免创建多个对象。传递数据可以使用getTag和setTag方法设定。

2.      利用ViewHolder缓存,避免每次创建新的View

3.      让itemView的layout层级越简单越好。避免过度重绘——这是所有布局都应该遵循原则。

4.    尽量能保证 Adapter hasStableIds() 返回 true,这样在 notifyDataSetChanged() 的时候,如果 id 不变,ListView 将不会重新绘制这个 View,达到优化的目的;

5.      为了保证 ListView 滑动的流畅性,getView() 中要做尽量少的事情,不要有耗时的操作。特别是滑动的时候不要加载图片,停下来再加载。使用GlidePicasso等库可以帮助。

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

7.      参见:http://www.imlongluo.com/blog/?p=263

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值