【发布时间】:2018-10-14 16:18:18
【问题描述】:
我正在使用 Recyclerview 和 GridLayoutManager 来查看多个不同类型和不同 SpanSize 的视图:
listsLayoutManager.setSpanCount(6);
listsLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if (adapter.getItemViewType(position) == VODsGridRVAdapter.TYPE_TITLE || adapter.getItemViewType(position) == VODsGridRVAdapter.TYPE_HEADER)
return 6;
return 1;
}
});
这里是getItemViewType方法:
@Override
public int getItemViewType(int position) {
if (position == 0)
return TYPE_HEADER;
return dataList.get(position - 1).isTitle() ? TYPE_TITLE : TYPE_ITEM;
}
位置 0 始终是标题。
当滚动视图时,onBindViewHolder 给出了错误的位置,而 getAdapterPosition 正在这样做。
除了使用holder.setIsRecyclable(false);
,有没有解决这个问题的方法?
【问题讨论】:
标签: android