如何提升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条

你可能感兴趣的:(Android学习)