теперь я нахожу ошибку в моем проекте
val diffCallback = diff.newInstance(list, newList)
val diffResult = DiffUtil.calculateDiff(diffCallback)
list.clear()
list.addAll(newList)
diffResult.dispatchUpdatesTo(this)
это мой код сравнения в моем адаптере, вы можете видеть, как я очищаю старый список и обновляю новый список.
но яиспользуйте данные в видоискателе и установите тег с ним в представлении.
когда я устанавливаю старые данные в качестве тега в представлении, тогда я изменяю список, потому что этот diffUtil возвращает значение true, поэтому просматриваем также обработчик старых данныхв его теге, но я всегда обновляю список адаптеров, когда diff, поэтому, когда я использую adapter.list.getindex(data)
, я получаю -1, потому что тег view является старыми данными, и мой список адаптеров должен был обновить новый список, даже если представление старых данных данных ==новый список.
когда я удаляю list.clear() list.addAll(newList)
, различие не может быть успешным, кто-то может сказать мне, почему?и как я могу решить эту проблему?