Android——ListView工作原理及具体实现

实例化一个ListView,需要给这个listview设定一个适配器(adapter)才能够使其正常工作。如果我们重写了一个适配器的话,我们会发现我们需要重载四个方法:如下图

重写监听器

1.getCount()函数,返回的是我们调用的这个listview的长度
listview开始绘制的时候,会调用该方法,来一行一行的绘制listview。如果你的getCount()返回值是0的话,列表一行都不会显示,如果返回1,就只显示一行。返回几则显示几行。
?如果要显示的item很多怎么破?我们也不可能会生成成千上万的item吧?
Android早已经缓存了这些视图,大家可以看下下面这个截图来理解下:

Paste_Image.png

原理剖析:
1.如果有几千几万甚至更多的选项(item)时,其中只有可见的如图中七个item在内存中存放着,而其他的都在recycler中
2.ListView先请求一个type1视图(getView)然后请求其他可见的项目。convertView在getView中是空(null)的
3.当item1滚出屏幕,并且一个新的项目从屏幕低端上来时,ListView再请求一个type1视图。convertView此时不是空值了,它的值是item1。你只需设定新的数据然后返回convertView,不必重新创建一个视图
自己重写一个adapter适配器(重点在于getview()函数):

重写适配器
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容