Имеют ли значение hasStableIds и getItemId, если используется DiffUtil?

Мы используем DiffUtil.CalculateDiff с обычаем DiffUtil.Callback обрабатывать изменения в базовых данных.

  • Идентичность наших элементов довольно сложна, и поэтому мы используем пользовательскую проверку на равенство areContentsTheSame а также areItemsTheSame,

  • Тем не менее, адаптер имеет две вещи hasStableIds а также getItemId,

Проблема в том, что getItemId возвращает long и идентичность наших элементов не может быть объединена в long стабильно (хотя в остальном стабильно, учитывая нашу пользовательскую проверку равенства в обратном вызове diffutil.

Вопрос в следующем:

Что делать с hasStableIds а также getItemId в этом случае, и используются ли они вообще, когда DiffUtil выдвигает изменения в адаптере?

1 ответ

Я не знаю, что на самом деле делает конюшня в фоновом режиме, но она используется для поддержания порядка элементов и удаления любых глючных вещей.

Другие вопросы по тегам