构造Adapter时,没有使用缓存的 convertView
来源:互联网 发布:诡异 知乎 编辑:程序博客网 时间:2024/05/19 19:56
描述:
以构造ListView的BaseAdapter为例,在BaseAdapter中提高了方法:
public View getView(int position, View convertView, ViewGroup parent)
来向ListView提供每一个item所需要的view对象。初始时ListView会从BaseAdapter中根据当前的屏幕布局实例化一定数量的view对象,同时ListView会将这些view对象缓存起来。当向上滚动ListView时,原先位于最上面的list item的view对象会被回收,然后被用来构造新出现的最下面的list item。这个构造过程就是由getView()方法完成的,getView()的第二个形参 View convertView就是被缓存起来的list item的view对象(初始化时缓存中没有view对象则convertView是null)。
由此可以看出,如果我们不去使用convertView,而是每次都在getView()中重新实例化一个View对象的话,即浪费资源也浪费时间,也会使得内存占用越来越大。ListView回收list item的view对象的过程可以查看:
android.widget.AbsListView.java --> void addScrapView(View scrap) 方法。
示例代码:
public View getView(int position, View convertView, ViewGroup parent) {
View view = new Xxx(...);
... ...
return view;
}
修正示例代码:
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView != null) {
view = convertView;
populate(view, getItem(position));
...
} else {
view = new Xxx(...);
...
}
return view;
}
- 构造Adapter时,没有使用缓存的 convertView
- 使用Adapter提供的convertView优化Listview
- convertView 缓存的好处
- listView中多个listItem布局时,convertView缓存及使用
- listView中多个listItem布局时,convertView缓存及使用
- listView中多个listItem布局时,convertView缓存及使用
- listView中多个listItem布局时,convertView缓存及使用
- listView中多个listItem布局时,convertView缓存及使用
- 【listView】listView中多个listItem布局时,convertView缓存及使用
- listView中多个listItem布局时,convertView缓存及使用
- 在listView中多个listItem布局时,convertView缓存及使用
- Adapter中getView的理解!(convertView )
- 【android】Adapter 的 convertView 复用浅析
- ListView的adapter(用到ViewHolder和convertview)
- 利用convertView优化ListView和GirdView的性能 (Adapter的使用)
- 使用adapter的notifyDataSetChanged时列表数据没有刷新
- android ListView中的convertView缓存及使用
- adapter.notifyDataSetChanged()使用没有效果的解决办法。
- FottView知识点
- Objective-C中的Block
- MyEclipse JdbcOdbcDriver source not found
- NSBundle知识点
- oracle之plsql基础
- 构造Adapter时,没有使用缓存的 convertView
- nginx配置ssh
- A8平台接上10.1寸京东方液晶黑屏,没有图像
- 菊花控件:
- android 数据库的操作总结
- 重复提交、重复刷新、防止后退的问题以及处理方式
- cocos2d-x3.3在windows上的安装
- Lua简易入门
- 堆排序(Heap Sortd)