我们正在将DiffUtil.CalculateDiff
与自定义DiffUtil.Callback
配合使用来处理对基础数据的更改。
元素的标识非常复杂,这就是为什么我们在areContentsTheSame
和areItemsTheSame
中使用自定义相等性检查。
但是,适配器有两件事hasStableIds
和getItemId
。
问题是getItemId
返回一个long
,并且我们的元素标识不能以稳定的方式合并到long
中(尽管考虑到我们的自定义相等性检查是稳定的)在diffutil的回调中。
问题是这样的:
在这种情况下,如何处理hasStableIds
和getItemId
?在DiffUtil将更改推送到适配器时,是否全部使用?
答案 0 :(得分:0)
我不知道背景中到底有什么马but,但是它是用来使元素保持顺序并删除所有有问题的东西。