Kotlin MutableLiveData列表在设置空数组数据时不会通知观察

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

我有一个MutableLiveData变量

val myModels : MutableLiveData<List<MyModel>?> = MutableLiveData(null)

并在调用函数后具有网络功能getModels(),如果结果成功,则工作正常,但如果调用其他情况,那么我将使用空数组arrayListOf()设置值,那么这将不通知observer] >

fun getModels(folderId: String) {
    viewModelScope.launch {
        Repository.getModels(modelId)?.let {
            when(it) {
                is ResultWrapper.Success -> myModels.value = it.value?.result
                else -> {
                    myModels.value = arrayListOf()
                }
            }
        }
    }
}

观察者

viewModel.getModels("384763785")

viewModel.myModels.observe(viewLifecycleOwner) {
        it?.let {
            if (it.isNotEmpty()) {
                //TODO
            } else {
                //TODO
            }
        }
    }

永远不会调用其他情况

我有一个MutableLiveData变量val myModels:MutableLiveData ?> = MutableLiveData(null)并在调用函数后具有网络函数getModels(),如果...

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