@Shikato
Android

Как избежать дублирования нажатий в RecyclerVuew?

Всем доброго времени суток! Подскажите, пожалуйста, в чем может быть проблема и как ее решить.
RecyclerView в адаптере в реализации вьюХолдера я вешаю на holder.itemView онКлик. Задача клика - при нажатии на элемент RV сделать видимым лэйаут с детализацией. И все замечательно, все работает, но если прокрутить список то будут еще открытые элементы, а когда вернешься обратно то можешь обнаружить что открыт не тот элемент, который ты выбирал.
Спасибо!
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
RecyclerView переиспользует вью и вьюхолдеры. Поэтому в каждом onBindViewHolder ты должен рассчитывать на то, что придет холдер, который до этого уже использовался, и, соотвественно, вьюха тоже использовалась.
Решение такое - при нажатии нужно менять набор данных(запоминать, что элемент открыт) и вызывать notifyItemUpdated. Раскрывать только в onBindViewHolder.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы