我有一个RecyclerView
,RecyclerView.Adapter
的后备数据来自Cursor
Loader
。数据包含两种类型的项:A
和B
通过UNION ALL
返回。 getItemViewType
为每个int
返回不同的A
(请参阅下面的注释)。 B
和_id
实体来自不同的SQLite数据库表,他们的1
都来自B
,所以它就像是_id
} A
与现有setHasStableIds(true)
相同,反之亦然。
在上述适配器上设置Adapter
是否安全?
当光标同时具有相同ID的As和B以及动画或回收出错时,可能会发生奇怪的情况?
注意:
getItemViewType
的所有其他部分都非常标准:R.layout.a_view
是通过返回R.layout.b_view
或ViewHolder
来实现的。对于onCreateViewHolder
中创建的每个类型,还有单独的itemViewType
子类,其中{{1}}处开关。
当我离开另一个活动时,所有项目都会正确显示甚至动画,修改一些数据然后按后退按钮(感谢装载机我猜)。