Как получить доступ к ViewHolder у RecyclerView, чтобы вызвать метод его отрисовки?

Есть адаптер private class MyAdapter extends RecyclerView.Adapter
и private class ItemHolder extends RecyclerView.ViewHolder

Отрисовка делается в updateHolder при вызове в ItemHolder bindItem
public void bindItem(ItemClass item) {

  mItem = item;
  updateHolder();
}


из
@Override
        public void onBindViewHolder(ItemHolder holder, int position) {

            holder.bindItem(mItems.get(position));
        }


В updateHolder() используется некоторое внешнее значение, в зависимости от которого выводится mItem.field1 или mItem.field2.

Как при изменении значения внешнего значения сделать перерисовку всех элементов списка лишь вызовом updateHolder()?
  • Вопрос задан
  • 473 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
В updateHolder() используется некоторое внешнее значение, в зависимости от которого выводится mItem.field1 или mItem.field2.

Это не очень хорошая практика. Лучше, чтобы все данные лежали в элементе данных. При изменении данных должен изменяться список с данными, вызываться DiffUtil и изменение данных передаваться в адаптер.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы