Примечание: это не лучшая практика, это просто обходной путь, и если у кого-то есть какой-либо лучший ответ, пожалуйста, поделитесь.
Для тех из васкто все еще ищет ответ, у меня есть простое исправление.
Я только что переместил все представление, которое я хотел показать, над представлением переработчика внутри представления переработчика, т. е. сделал это представление заголовкомПредставление Recycler.
Внутри представления Recycler:
const val HEADER = 0
const val REAL_ITEM = 1
Метод getItemViewType, который возвращает тип представления onCreateViewHolder.
override fun getItemViewType(position: Int): Int {
return when (position) {
0 -> HEADER
else -> REAL_ITEM
}
}
Внутри метода onCreateViewHolder:
override fun onCreateViewHolder(p0: ViewGroup, p1: Int): NewsViewHolder {
val view = when (p1) {
HEADER -> {
LayoutInflater.from(ctx).inflate(R.layout.rv_header, p0, false)
}
else -> LayoutInflater.from(ctx).inflate(R.layout.xyz, p0, false)
}
return SomeViewHolder(view)
}
Внутри onBindViewHolder вы можете получить тип представления и связать данные в соответствии с требованиями представления.
override fun onBindViewHolder(p0: NewsViewHolder, p1: Int) {
val viewType = getItemViewType(p1)
}