我按照https://nodeload.github.com/necronet/section-list/zip/master的说明实现了部分列表视图。一切正常,但出于好奇,我想知道 Android 操作系统如何getView
在适配器的功能中给我正确的 convertView (下面的代码)。有两种类型的视图(两种不同的布局文件),一种是SectionView 和ItemView。想象一种情况,当一个拳头部分和一个项目滚动出屏幕时,视图回收器中有两个视图。然后将要从底部滚动一个新视图。在getView
函数中,我必须通过函数检查位置isSection
, 以确定我应该在那个位置给出什么观点。令人惊奇的是,Android OS(或任何底层)总是给我正确的 convertView(在 Recycler 中的两种视图中)来回收,它是如何在我检查之前知道的?谢谢。
public View getView(final int position, final View convertView,
final ViewGroup parent) {
if (isSection(position)) {
return getSectionView(convertView, sectionPositions.get(position));
}
return getItemView(getLinkedPosition(position), convertView,
parent);
}