如何提升ListView的效率

ListView的优化方案

 首先,默认直接使用ListView的效率是非常低的,在Adapter的getView()方法中,每次都将布局加载了一遍,当它快速滚动的时候就会性能下降。

  1,在getView()的参数中还有一个View 类型的convertView参数,它用于将之前加载好的布局进行缓存,以便之后的重用。我们可以先判断converView是否为空,如果为空,则使用LayoutInflater去加载布局。如果不为null则直接使用convertView进行重用。尽可能少的创建View.

  2、现在已经不会去重复加载布局了,但是每次在getView()方法中还是会调用view的findViewById()方法来获取一次控件的实例。可以新增一个内部类ViewHolder,用于对控件的实例进行缓存,再使用View的setTag()方法传入已经缓存好的ViewHolder对象。当然获取这个viewHolder可以直接调用view的getTag()方法,把它重新取出来,然后在setImageResource()设置资源文件。

  3、如果listview需要显示的item很多,就要考虑分页加载。比如一共要显示100条或者更多的时候,我们可以考虑先加载20条,等用户拉到列表底部的时候再去加载接下来的20条

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值