ListView的缓存机制

说到ListView固然少不了Adapter了,Adapter的做用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面的额时候,都会调用AdaptergetView()这个方法返回一个View。这样,ListView中有多少项,就应该调用多少次getView()方法去绘制每一项的界面。若是项数少的时候(几十行),这是没问题的。可是若是有一万行,一百万行,那么就会出现问题了,它会占用系统极大的内存,因此必须采用性能优化的方法。缓存

 

先说一下ListView的工做原理:ListView工做的时候,会针对每一个item,要求Adapter对象返回一个ViewgetView()方法),也就是说,Listview在开始绘制的时候,系统首先调用getCount(),根据其返回值获得ListView的长度,而后根据这个长度,调用getView()一行一行的绘制ListView的每一项。性能优化

 

搞清楚了ListView的工做原理,咱们就能够来看ListView的缓存机制了,以下:ide

 

1)若是有几千,几万行甚至更多的代码的时候,其中只有课件的项存在于内存中,其余的都在Recycler中,RecycleAndroid中专门用来处理缓存的组件。性能

 

2ListView先经过getView()方法请求一个View,而后请求其余可见的View。这时convertViewgetView中是空的。优化

 

3)当列表第一项滚出屏幕,而且一个新的项从屏幕低端上来时,ListView会再请求一个View,这时,convertView已经不是空值了,它的值是滚动出屏幕的第一项,以后只须要设定新的数据,而后返回convertView便可,而没必要从新建立一个Viewspa

相关文章
相关标签/搜索