每日总结之Adapter的缓存机制
来源:互联网 发布:photozoom pro mac 编辑:程序博客网 时间:2024/05/29 16:10
Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面的额时候,都会调用Adapter的getView()这个方法返回一个View。这样,ListView中有多少项,就应该调用多少次getView()方法去绘制每一项的界面。如果项数少的时候(几十行),这是没问题的。但是如果有一万行,一百万行,那么就会出现问题了,它会占用系统极大的内存,所以必须采用性能优化的方法。
ListView中每个item都是通过getView返回并显示的,假如item有很多个,那么重复创建这么多对象来显示显然是不合理。因此,Android提供了Recycler,将没有正在显示的item放进RecycleBin,然后在显示新视图时从RecycleBin中复用这个View。
Recycler的工作原理大致如下:
假设屏幕最多能看到11个item,那么当第1个item滚出屏幕,这个item的View进入RecycleBin中,第12个要出现前,通过getView从回收站(RecycleBin)中重用这个View,然后设置数据,而不必重新创建一个View。
第一次加载的时候是一个桌面的的items的数目+1,最上面那一条convertView会加载2次。当convertView为空的时候,也就是第一次绘制的时候,那一条缓存还没有加载出来。所以adapter里面都会有判断,当convertView不为空的时候,
最好在时候新建viewholeder模板,在后加载模板。让加载的item8能成加载出来而不是加载成item7了
0 0
- 每日总结之Adapter的缓存机制
- 【总结】浏览器的缓存机制
- Hibernate缓存机制的总结
- 前端缓存机制的总结
- iOS每日一记之————————SDwebimage图片的缓存机制
- Eclipse的Adapter机制
- Eclipse的Adapter机制
- ListView总结之Adapter
- Android之Adapter总结
- 关于Hibernate的缓存机制 总结
- 每日一记之ASimpleCache缓存框架的使用方法
- MyBatis-缓存机制总结
- RecyclerView缓存机制总结
- Adapter---Android之Adapter用法总结
- Web缓存系列之浏览器的机制
- 浅谈php的缓存机制之memcache
- 浅谈php的缓存机制之redis
- IBatis 的缓存机制之 Select Query缓存
- 记一次更换域名ip遇到的坑
- [翻译]android中如何使得ListView滑动流畅
- PCIe 复位:Clod reset、warm reset、Hot reset、Function level reset
- 开源Java论坛
- 动态规划简介
- 每日总结之Adapter的缓存机制
- C语言判断给定的字符串是否为合法的ip地址
- HDU1047 - Integer Inquiry (大数加法)
- HTML文件编码
- iOS中.gitignore的使用
- 如何教女朋友一起编程
- 关于fastDFS+nginx的集群配置问题解答集锦Q&A
- HDU 5044 Tree (2014年上海赛区网络赛C题)
- js闭包的用途