Android DiffUtils 同一个对象修改问题
Google 出了一个 DiffUtils 用于分发 Adapter 修改数据,很好用,但是有个问题,如果你的数据是来自网络的没问题,因为每次通过 Gson 来解析都是一个新的对象,对象是不一样的。因此是用 Diff 是没问题的。如果对象来自自己构建,当 UI 中修改的时候一般都是直接修改对象,当进行 Diff 的时候这个对象已经被修改了,没法进行比较。
这里有个办法来对付这种情况,Adapter 缓存的是 Vm 的 toString 对象,通过比较 toString 是否一样即可,这样就能直接对比分发。当然 HashCode 也是可以