【发布时间】:2016-09-06 10:37:41
【问题描述】:
我有两个RecyclerView.Adapters 使用完全相同的RecyclerView.ViewHolders 作为内部类。
我想摆脱代码重复并让这些ViewHolders 免费、独立的类,所以现在任何RecyclerView.Adapters 都可以使用全新的类。
但是我遇到了很多麻烦,例如难以访问适配器对象。 getAdapterPosition() 总是返回 -1。
所以我改变了主意,创建了一个由这些适配器扩展的超级 RecyclerView.Adapter 类,并将 ViewHolder 放在超类中,以便这些适配器可以从子类中使用它。
但我想知道ViewHolder 是否必须是内部类。这让我很生气。请不要建议我组合适配器类,它们完全不同,因为 ViewHolder 只是一个特殊的 viewType,可以出现在任何 RecyclerView 中
我正在等待你更好的方法让我感觉更好。
问候。
【问题讨论】:
-
Java 甚至没有真正的内部类,只是在同一个 .java 文件中编写相同包类的一些语法糖。如果您在将 ViewHolders 作为非内部类时遇到问题,请发布有问题的代码。
标签: java android android-recyclerview android-viewholder