Предположим, у меня есть 40 элементов в RecyclerView. 20 предметов в нем имеют одно и то же намерение, каждое из которых будет запущено при касании. На каждом 5-секундном интервале намерение изменяется, поэтому 20 из 40 пунктов будут заменены их намерениямиЕсть ли способ обновить некоторые элементы в RecyclerView без переустановки?
Есть ли способ обновить все намерения по каждому из 20 предметов, не переустанавливая их?
Каждый раз, когда он восстанавливается, элемент исчезает и появляется, и с 5-секундным интервалом времени было бы неинтересно видеть, что предметы постоянно появляются и исчезают.
Я думал, что переменная должна указывать на объект, так что, когда этот объект обновляется, намерение элементов также обновляется. Но Java - это пропускная способность, поэтому шансов нет.
Любые идеи?
Обновление данных БЕЗ уведомления об изменениях, которые были изменены, не будет иметь никакого эффекта. Только когда адаптер будет уведомлен, новое значение будет заменено старым значением. В моем случае мне не нужны визуальные изменения, но данные не были обновлены, если я не позвоню, скажите адаптеру, например. 'notifyDataSetChanged()' – Kyle
@Kyle. Это может быть много причин. Я предполагаю, что адаптер поддерживается какой-то базовой структурой данных, такой как «Список». Я также предполагаю, что каждый раз, когда вызывается 'onBind()', вы передаете элемент в позиции 'x', передавая его' ViewHolder'. Вы можете обновить элемент в позиции 'x' без уведомления адаптера. Он будет обновляться как в «List», так и в «ViewHolder», потому что оба объекта содержат ссылки на один и тот же элемент. Исключение было бы, если вы кешируете или копируете элемент, и в этом случае вы создадите две ссылки. – DeeV
Вы правы - мой адаптер поддерживает структуру данных. Если бы это было не так, то, по-вашему, вы, вероятно, сработаете. Тем не менее, возиться с ItemAnimator получил то, что я хотел - спасибо за отличное предложение. – Kyle