LiveData,DiffUtil和对象引用

问题描述 投票:0回答:1

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将注意到差异。有什么更好的吗?

android android-livedata mutablelivedata android-diffutils
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.