图解ListView中的RecycleBin机制
2017-03-15 22:27:23 2 举报
图解ListView中的RecycleBin机制
作者其他创作
大纲/内容
y
AdapterView
mChildren清空
onLayout()发现此有对childView的管理
addView(View child)//抛出不支持的功能目的:使用内部的方法添加
入口
getView()我们BaseAdapter常用的方法
extends
onMeasure()/onLayout()中一定有对childView的管理
scrapView =mRecycler.getScrapView(position);
//说明viewType不要太大不然ArrayList会空出很多元素 并且扩容很费劲的
从recycleBin取出数据 并layout在对应的位置
N
把mChildren存入recycleBin
内部类
View getActiveView(int position)//冲mActiveViews找到view并冲mActiveViews中移除
// Clear out old views detachAllViewsFromParent();
View[] mActiveViews
mScrapViews[viewType].add(scrap);
RecycleBin
Y
mRecycler.getActiveView(position);//直接复用tActiveView
//存入废弃的Views中recycleBin.addScrapView();
dataChanged
mChildren数组的每个view.parent=null
View retrieveFromScrap()//返回view并且冲Scrap中移除
AbsListView
//存入使用的Views中recycleBin.fillActiveViews();
layoutChildren();
ArrayList[] mScrapViews;//废弃的views list的每个元素与布局类型相关
注意
ListView
额外的意思
n
0 条评论
下一页