Просмотр элементов RecyclerView обновляется после прокрутки вверх или вниз

#android #android-recyclerview

#Android #android-recyclerview

Вопрос:

У меня есть RecyclerView и список элементов. Элементы отображаются в ViewModel, адаптер получает измененный список при каждом изменении списка в ViewModel.

Однако у меня возникает проблема при обновлении определенных представлений элементов в существующем элементе списка — эти изменения происходят, но чтобы увидеть их, мне нужно немного прокрутить вверх или вниз. В держателе представления у меня есть все необходимые случаи if / else, которые нужно обновить в соответствии со значениями элементов. Есть ли способ обновить представление элемента мгновенно, без необходимости прокрутки?

Комментарии:

1. просмотры перерабатываются. таким образом, одновременно отображается только несколько элементов. при прокрутке вы видите, что обновление приводит к тому, что данные снова привязываются к вашим представлениям в зависимости от позиции

Ответ №1:

Вы можете вызвать adapter.notifyDataSetChanged() функцию, чтобы заставить адаптер снова перерисовать все элементы.

Ответ №2:

вы должны использовать adapter.notifyItemChanged(int indexOfChangedItem) или adapter.notifyDataSetChanged() после изменения любого элемента списка.

первый обновит «все» просмотры элементов, а второй обновит только представление, которому вы передали его индекс.