本文介绍了如何在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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 09:15