Видях интересна реализация на viewholder в този туит 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 holders. И не намерих примери за този трик.
В моите viewholders трябва да разширя RecyclerView.ViewHolder и трябва да разширя запечатания клас, за да мога да го използвам в клаузите „when“. Не се допуска множествено наследяване.
Така че възможно ли е и ако е тогава как?
P.S.
оригиналните автори пишат това:
Можете също да използвате запечатани класове в адаптер RecyclerView. Те са идеално подходящи за ViewHolders - с чист набор от типове, които да се изпращат изрично на всеки притежател. Използван като израз, компилаторът ще даде грешка, ако всички типове не са съпоставени.