#android #android-recyclerview
#Android #android-recyclerview
Вопрос:
У меня есть RecyclerView и список элементов. Элементы отображаются в ViewModel, адаптер получает измененный список при каждом изменении списка в ViewModel.
Однако у меня возникает проблема при обновлении определенных представлений элементов в существующем элементе списка — эти изменения происходят, но чтобы увидеть их, мне нужно немного прокрутить вверх или вниз. В держателе представления у меня есть все необходимые случаи if / else, которые нужно обновить в соответствии со значениями элементов. Есть ли способ обновить представление элемента мгновенно, без необходимости прокрутки?
Комментарии:
1. просмотры перерабатываются. таким образом, одновременно отображается только несколько элементов. при прокрутке вы видите, что обновление приводит к тому, что данные снова привязываются к вашим представлениям в зависимости от позиции
Ответ №1:
Вы можете вызвать adapter.notifyDataSetChanged()
функцию, чтобы заставить адаптер снова перерисовать все элементы.
Ответ №2:
вы должны использовать adapter.notifyItemChanged(int indexOfChangedItem)
или adapter.notifyDataSetChanged()
после изменения любого элемента списка.
первый обновит «все» просмотры элементов, а второй обновит только представление, которому вы передали его индекс.