DiffUtil用于同一列表的多个实例

时间:2018-03-15 08:48:45

标签: android android-recyclerview

我有一个RecyclerView,其元素通过WebSocket更新。更新可能会影响列表中不同位置的多个元素。我想用DiffUtil来更新RecycleView的元素。套接字更新本身不包含整个列表元素结构,只包含几个字段。因此,为了更新,我需要从适配器获取当前数据列表,查找需要更新的元素,更新字段并将新列表传递到DiffUtils以与当前的列表进行比较。问题是,当我更新对象时,它还会自动更新RecyclerView适配器,因为它保留作为参考。因此,当我从WebSocket获得更新时,我已经没有“旧”列表与更新的列表进行比较。

1 个答案:

答案 0 :(得分:0)

最后,我在Medium上找到了解决方案。这是https://android.jlelse.eu/rxjava-and-immutable-diffcallback-in-android-f4637078b03b