Что делает метод notifyItemChanged?

316
04 апреля 2017, 10:14

Что делает метод notifyItemChange() у класса RecyclerView.Adapter?

Answer 1

Для RecyclerView.Adapter есть 2 перегрузки данного метода:

  • void notifyItemChanged (int position, Object payload)

Сообщает всем зарегистрированным наблюдателям, что item на данной позиции был изменён с необязательным объектом полезной нагрузки.

Это событие изменения позиции, а не событие структурных изменений. Это означает, что любое отражение данных в позиции устарело и должно быть обновлено. Item на данной позиции сохраняет идентичность.

Клиент может дополнительно передать полезную нагрузку для частичного изменения. Эти полезные нагрузки будут объединены и могут быть переданы адаптеру в метод onBindViewHolder(ViewHolder, int, List), если элемент уже представлен ViewHolder, он будет обновлен внутри того же самого ViewHolder. NotifyItemRangeChanged() с нулевой полезной нагрузкой очистит все существующие полезные нагрузки на этом элементе и предотвратит будущую полезную нагрузку до вызова onBindViewHolder(ViewHolder, int, List). Адаптер не должен предполагать, что полезная нагрузка всегда будет передаваться в onBindViewHolder(). Когда представление не присоединено к ViewHolder, полезная нагрузка будет просто удалена.

  • void notifyItemChanged(int position)

Сообщает всем зарегистрированным наблюдателям, что item на данной позиции был изменён. Эквивалентно вызову notifyItemChanged(position, null);.

Это событие изменения позиции, а не событие структурных изменений. Это означает, что любое отражение данных в позиции устарело и должно быть обновлено. Item в позиции сохраняет идентичность.

Вольный перевод сайта developer.android.com

READ ALSO
Java элементы дерева JTree

Java элементы дерева JTree

Разобрал стандартные примеры с JTreeСобственно возник вопрос, возможно ли заменить элементы JTree на другой компонент, что бы при разворачивании,...

319
SQLite проверить существование строки в базе данных

SQLite проверить существование строки в базе данных

Как проверить присутствие строки в базе данных SQLite и если есть то обновлять какое то значение в строке?

270
Как 3-му элементу в списке задать цвет?

Как 3-му элементу в списке задать цвет?

Как в RecyclerAdapter задать элементу, находящемуся на 3-й позиции, цвет

243
NullPointerException EventFragment.java:99

NullPointerException EventFragment.java:99

Помогите разобраться пожалуйста!

229