繁体   English   中英

DiffUtil - 如何在更新之前保留旧列表

[英]DiffUtil - How to keep the old List before updating it

我正在尝试使用DiffUtil更新RecyclerView 我有一个类DataProvider ,它是一个单例类,其中包含包含对象的列表。

每次我需要更新RecyclerView我都会修改DataProvider的 List 。 现在,当我尝试使用将两个列表作为参数的DiffUtil ,我真的不再拥有旧List了,因为我更新了它。

在更新之前保留旧List的最佳方法是什么,以便我可以比较它们并在RecyclerView进行所需的更新而无需调用notifyDataSetChanged()

请参考这个答案: https : //stackoverflow.com/a/47522246/8298909

我知道您在问一个不同的问题,但我链接的答案中的两个代码片段几乎正是您要寻找的: DiffUtil.Callback的简单实现以及如何使用它的示例,即使您在直接修改支持适配器的数据源。

关键是在执行更改之前使用new ArrayList<>([your data here])创建修改前列表的(临时)副本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM