【发布时间】:2019-07-30 06:35:36
【问题描述】:
我们使用DiffUtil.CalculateDiff 和自定义DiffUtil.Callback 来处理对基础数据的更改。
我们元素的身份相当复杂,这就是我们在
areContentsTheSame和areItemsTheSame中使用自定义相等检查的原因。但是,适配器有两个东西
hasStableIds和getItemId。
问题是getItemId 返回一个long 并且我们元素的身份不能以稳定的方式合并为long(尽管考虑到我们在 diffutil 回调中的自定义相等检查,否则稳定。
问题是这样的:
在这种情况下如何处理 hasStableIds 和 getItemId 以及当 DiffUtil 将更改推送到适配器时是否使用它们?
【问题讨论】:
标签: android android-recyclerview identity android-diffutils