Как удалить горизонтальный recyclerview(child) внутри recyclerview(parent) и прокрутить его до первой позиции при уведомлении об изменении элемента?

Я использую несколько типов представления внутри recyclerview. В каком из типов представления является recyclerview линейного менеджера компоновки с горизонтальной ориентацией. Я загрузил все типы представлений внутри родительского представления recyclerview. Когда я меняю какой-то элемент в горизонтальном элементе recyclerview позиции 10 и обновляю егоadapter?.notifyItemChanged(10), горизонтальное представление recyclerview переходит на первую позицию 0. И это создает плохой пользовательский опыт.

Также я использовалandroid:descendantFocusability="blocksDescendants"иsetHasFixedSize(true)в родительском и дочернем Recyclerview не работает. Есть ли способ решить мою проблему. А также прикрепленное изображение для справки

Здесь позиция 1 — горизонтальный вид ресайклера.

1 ответ

Вы могли бы сохранитьRecyclerViewэкземпляр макета и восстановление сообщения с уведомлениемadapter, это восстановит свойства менеджера макетов, такие как положение прокрутки.

      val savedInstance = recyclerView.layoutManager?.onSaveInstanceState()
adapter?.notifyItemChanged(10)
recyclerView.layoutManager?.onRestoreInstanceState(savedInstance)
Другие вопросы по тегам