有LiveData
,它是用户列表:
val users: MutableLiveData<List<User>>
然后更新:
val usersValues = users.getValues()
val user = usersValues[0]
user.name = "new-name"
users.post(usersValues)
并且DiffUtil
不会看到不同,因为User
是同一对象,所以它只是在Adapter
内部更新。
fun areContentsTheSame(int a, int b): Boolean {
val oldUser //User@666
val newUser //User@666
return oldUser.id == newUser.id || oldUser.name == newUser.name
}
一种解决方案是创建新实例或副本,然后DiffUtil
将注意到差异。有什么更好的吗?