我在此推特https://twitter.com/AndroidDev/status/972502799496790018中看到了一个有趣的viewholder实现
override fun onBindViewHolder(holder: SealedAdapterViewHolder, position: Int) {
return when (holder) {
is HeaderHolder -> holder.displayHeader(items[position])
is DetailsHolder -> holder.displayDetails(items[position])
}
}
不幸的是,我不知道如何实现thouse持有人。而且我没有找到这个技巧的任何例子。
在我的 View 持有者中,我必须扩展RecyclerView.ViewHolder,并且必须扩展密封类,以便可以在“when子句”中使用它。不允许多次骚扰。
那有可能吗?如果可以,怎么办?
P.S.
原始作者这样写:
最佳答案
像这样的东西:
sealed class SealedAdapterViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
class HeaderHolder(view: View) : SealedAdapterViewHolder(view)
class DetailsHolder(view: View) : SealedAdapterViewHolder(view)
}