У меня есть собственный класс для данных, отображаемых в моем RecyclerView. Каждый объект и, следовательно, каждая строка имеет уникальное значение идентификатора для поля id
в классе.
Всякий раз, когда я обновляю данные sh, список очищается, заполняется и вызывается notifyDataSetChanged()
. Это вызывает эффект мерцания.
Во время этих обновлений, хотя id остается неизменным, некоторые другие поля изменяются, и некоторые из этих изменяющихся полей должны быть отражены в представлении элемента.
Должен ли я быть использование setHasStableIds(true)
в сочетании с getItemId()
ИЛИ я должен использовать DiffCallback, где я могу переопределить areItemsTheSame()
и areContentsTheSame()
?
Если я использую прежний, я не уверен, что он может обнаружить изменения в других полях и обновить строку.