如果使用DiffUtil,hasStableIds和getItemId是否有意义?

时间:2019-03-08 08:51:38

标签: android android-recyclerview recycler-adapter identity android-diffutils

我们正在将DiffUtil.CalculateDiff与自定义DiffUtil.Callback配合使用来处理对基础数据的更改。

  • 元素的标识非常复杂,这就是为什么我们在areContentsTheSameareItemsTheSame中使用自定义相等性检查。

  • 但是,适配器有两件事hasStableIdsgetItemId

问题是getItemId返回一个long,并且我们的元素标识不能以稳定的方式合并到long中(尽管考虑到我们的自定义相等性检查是稳定的)在diffutil的回调中。

问题是这样的:

在这种情况下,如何处理hasStableIdsgetItemId?在DiffUtil将更改推送到适配器时,是否全部使用?

1 个答案:

答案 0 :(得分:0)

我不知道背景中到底有什么马but,但是它是用来使元素保持顺序并删除所有有问题的东西。