本文介绍了如何在Kotlin中使用密封类实现ViewHolder的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在此推文中看到了一个有趣的Viewholder实现 https://twitter.com/AndroidDev/status/972502799496790018
I saw an interesting viewholder implementation in this tweet https://twitter.com/AndroidDev/status/972502799496790018
override fun onBindViewHolder(holder: SealedAdapterViewHolder, position: Int) {
return when (holder) {
is HeaderHolder -> holder.displayHeader(items[position])
is DetailsHolder -> holder.displayDetails(items[position])
}
}
不幸的是,我不知道如何实现thouse持有人.而且我没有找到这个技巧的任何例子.
Unfortunately i can't figure out how to implement thouse holders. And I didn't find any examples of this trick.
在我的视图持有人中,我必须扩展RecyclerView.ViewHolder,并且必须扩展密封类,以便可以在"when子句"中使用它.不允许多次骚扰.
In my viewholders I have to extend RecyclerView.ViewHolder and I have to extend sealed class so i can use it in "when clauses". Multiple inharitance is not allowed.
那么有可能吗?如果有的话怎么呢?
So is it possible and if it is then how?
P.S.
原始作者这样写:
推荐答案
类似以下内容:
sealed class SealedAdapterViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
class HeaderHolder(view: View) : SealedAdapterViewHolder(view)
class DetailsHolder(view: View) : SealedAdapterViewHolder(view)
}
这篇关于如何在Kotlin中使用密封类实现ViewHolder的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!