`
aijuans
  • 浏览: 1548725 次
社区版块
存档分类
最新评论

ListView的缓存机制

阅读更多

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

 

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

 

搞清楚了ListView的工作原理,我们就可以来看ListView的缓存机制了,如下:

 

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

 

2ListView先通过getView()方法请求一个View,然后请求其他可见的View。这时convertViewgetView中是空的。

 

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

1
4
分享到:
评论

相关推荐

    ListView缓存机制

    ListView缓存机制ListView缓存机制ListView缓存机制ListView缓存机制

    ListView适配器及缓存机制

    ListView适配器及缓存机制

    Asynctask异步加载带图的listview,加入lru缓存机制

    1、了解异步处理的一般方法 2、掌握如何使用多线程进行异步加载 3、掌握如何使用ASyncTask进行异步加载 4、异步加载的缓存与优化

    MultipleItemList

    ListView缓存机制的源码,从代码中我们可以直到,每个convertView的调用机制。

    ListView_Demo

    主要分三个部分: 1、ListView缓存 com.babylovefang.buffer 2、ListView分页加载 com.babylovefang.paging_load 3、ListView二级列表 com.babylovefang.expandable

    listview的图像加载

    加入缓存机制和xutil库对网络图片进行加载。能解决listview加载网络图片的错位,错乱问题

    listView异步加载(多线程和AsyncTask)以及缓存的使用

    用多线程和AsyncTask两种方式去实现ListView上的网络图片异步加载,其中涉及到到Json的数据解析,根据网络连接获取图片等知识。并添加了缓存机制。

    Android Listview 滑动过程中提示图片重复错乱的原因及解决方法

    主要分析Android中Listview滚动过程造成的图片显示重复、错乱、闪烁的原因及解决方法,顺便跟进Listview的缓存机制。 1、原因分析 Listview item 缓存机制:为了使得性能更优,Listview会缓存行item(某行对应的...

    ListView异步显示,优化最终版本

    实现了ListView的异步加载,涉及到Json数据解析,多线程和AsyncTask的使用,缓存机制以及滑动优化。

    Android双缓存机制

    listview、gridview加载图片错文问题

    Android 图片缓存机制的深入理解

    Android 图片缓存机制的深入理解 Android加载一张图片到用户界面是很简单的,但是当一次加载多张图片时,情况就变得复杂起来。很多情况下(像ListView、GridView或ViewPager等组件),屏幕上已显示的图片和即将滑动...

    真实APP框架,带各种工具类,功能齐全

    自己总结整理的 包含activity栈管理消息管理 自己封装图片下载 和Imageloader第三方可供选择 封装MD5加密 封装联网解析接口回调 封装本地缓存机制 封装欢迎界面预读取下一个界面的数据 封装listview gridview ...

    android listview viewholder

    我们在使用ListView的时候,经常会使用的ViewHolder方式作为缓存,每次都需要手动的通过viewholder.icon = convertview.findVIewByid(id);一般的app都会有好几个页面会用到ListView,这样的话我们的代码量就会很大,...

    MemoryClean源代码

    root授权及检测,多线程,缓存机制,listView中有图片加载

    Android应用—— 花界

    (1). 工程运用Android Library (2). 通用主框架搭建 ... 缓存机制 (7). 异步图片加载 (8). 统计(暂且使用友盟) (9). 广告(暂且使用有米) (10). 在线支付(集成支付宝) (11). 异步图片加载 (12).其他 原文地址: ...

    c#源码-TestOPC-PLC.rar

    源码功能强大,集多线程、S7.Net、ZedGraph、OpcNetApi等DLL与一身,ListView采用双缓存机制,程序运行稳定、可靠,适合扩展工业级应用。

    Android代码-ProviderAdapter

    ProviderAdapter 模板化开发 ...此写法无任何xml,无任何inflate操作,并且添加了缓存机制,尽可能的减小了内存消耗 四、项目效果图 License Copyright [2018] [Victory-Over] Licensed under the

Global site tag (gtag.js) - Google Analytics