Android ListView优化思路12则

超蓝.jpg
1、ViewHolder模式,而且ViewHolder作为内部类使用时声明为static的

2、异步加载:耗时的操作放在异步线程中
     如果在adapter中的某些操作需要耗费大量的时间,这个时候就要用到异步线程来进行异步就在数据。比如:现在要加载图片,此时我们需要根据url访问网络得到数据,然后将数据解析为Bitmap设置给View

3、listView错位加载问题:判断url是否一致解决

4、为图片设置缓存

5、ListView的滑动时停止加载和分页加载

6、硬件加速,硬件加速只需要设置–android:hardwareAccelerate=”true”即可

7、自定义view降低层级

8、对于一些并非需要刷新整个ui的操作,尽可能做到单个ui刷新,不要让整个可见视图整体做视图渲染

9、listview在拖动的时候背景图片消失变成黑色背景,等到拖动完毕我们自己的背景图片才显示出来;所以需要将android:scrollingCache=”false” 或 android:cacheColorHint=”#00000000″ 

10、animateCache: ListView默认开启了animateCache,这会消耗大量的内存,因此会频繁调用GC,我们可以手动将它关闭掉

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

12、处理空ListView 
ListView用于展示列表数据,但当列表中无数据时,ListView不会显示任何数据或提示,按照完善用户体验的需求,这里应该给以无数据的提示。幸好,ListView提供了一个方法——setEmptyView(),通过这个方法,我们可以给ListView设置一个在空数据下显示的默认提示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值