我有一个RecyclerView,其元素通过WebSocket更新。更新可能会影响列表中不同位置的多个元素。我想用DiffUtil来更新RecycleView的元素。套接字更新本身不包含整个列表元素结构,只包含几个字段。因此,为了更新,我需要从适配器获取当前数据列表,查找需要更新的元素,更新字段并将新列表传递到DiffUtils以与当前的列表进行比较。问题是,当我更新对象时,它还会自动更新RecyclerView适配器,因为它保留作为参考。因此,当我从WebSocket获得更新时,我已经没有“旧”列表与更新的列表进行比较。
答案 0 :(得分:0)
最后,我在Medium上找到了解决方案。这是https://android.jlelse.eu/rxjava-and-immutable-diffcallback-in-android-f4637078b03b