我有两个使用完全相同 RecyclerView.ViewHolder
内部类的 RecyclerView.Adapter
。
我想消除代码重复,所以将这些 ViewHolder
作为自由的、独立的类,并使全新的类可以被任何 RecyclerView.Adapter
所使用。
然而,我遇到了许多问题,例如难以访问适配器对象。 getAdapterPosition()
总是返回 -1
。
所以我改变了主意,制作了一个超级的 RecyclerView.Adapter
类,这个类被那些适配器继承,并把 ViewHolder 放在超类中,这样那些适配器就可以从子类中使用它了。
但我想知道是否必须把 ViewHolder
设为内部类。这让我很烦恼。请不要建议我合并适配器类,它们完全不同,因为 ViewHolder
只是一种特殊的 viewType
,可以出现在任何 RecyclerView
中。
我正在等待您更好的方法,让我感觉更好。
谢谢。