ListView原理記録

1329 ワード

転載先:[url]https://blog.csdn.net/guolin_blog/article/details/44996879[/url]
-listViewとadapterは、結合を解除するために、ビューを担当し、データバインドを担当します.
-listViewは、RecycleBinによって可視itemを充填し続け、itemをリサイクルして廃棄する.
-ABsListViewのonlayoutは、itemの描画を実現します.ListViewのonlayoutはdataChangedによりデータが更新されたか否かにより可視itemへのパディングを行う.
-可視itemを入力すると、

View obtainView(int position, boolean[] isScrap) {
isScrap[0] = false;
View scrapView;
scrapView = mRecycler.getScrapView(position);
View child;
if (scrapView != null) {
child = mAdapter.getView(position, scrapView, this);
if (child != scrapView) {
mRecycler.addScrapView(scrapView);
if (mCacheColorHint != 0) {
child.setDrawingCacheBackgroundColor(mCacheColorHint);
}
} else {
isScrap[0] = true;
dispatchFinishTemporaryDetach(child);
}
} else {
child = mAdapter.getView(position, null, this);
if (mCacheColorHint != 0) {
child.setDrawingCacheBackgroundColor(mCacheColorHint);
}
}
return child;
}

item, adapter convertView

-その後、onlayoutのたびに、detachAllViewsFromParentはすべてのitemをバインド解除し、可視itemを塗りつぶしてからバインドします.
[img]http://dl2.iteye.com/upload/attachment/0130/2974/ae862947-5507-3f41-985f-1b20486cb207.png[/img]