listView 원리 레코드

1336 단어 android
[url]https://blog.csdn.net/guolin_blog/article/details/44996879[/url]
-listView와adapter는 결합을 풀기 위해 하나의 보기, 하나의 데이터 연결을 책임진다
-listView는 RecycleBin을 통해 보이는 item을 계속 채우고 item을 순환적으로 폐기합니다.
- item을 그릴 수 있도록 AbsListView의 onlayout을 사용합니다.ListView의 onlayout은 데이터 변경 사항이 업데이트되었는지 여부에 따라 보이는 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 시 detach All Views FromParent는 모든 item을 묶어서 보이는 item을 채운 후 묶는다
[img]http://dl2.iteye.com/upload/attachment/0130/2974/ae862947-5507-3f41-985f-1b20486cb207.png[/img]

좋은 웹페이지 즐겨찾기