【发布时间】:2018-03-12 12:06:02
【问题描述】:
我在这条推文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 holder。而且我没有找到任何这种技巧的例子。
在我的视图中,我必须扩展 RecyclerView.ViewHolder 并且我必须扩展密封类,以便我可以在“when 子句”中使用它。不允许多重继承。
那么有可能吗?如果是,那又如何?
附言
原作者这样写:
您还可以在 RecyclerView 适配器中使用密封类。他们是一个 非常适合 ViewHolders - 有一组干净的类型可供调度 明确地向每个持有人。用作表达式,编译器将 如果所有类型都不匹配,则会出错。
【问题讨论】:
-
可能像this
标签: android android-recyclerview kotlin sealed