【发布时间】:2021-08-10 12:14:03
【问题描述】:
我正在尝试在可组合项中显示对象列表。为此,我有一个带有以下列表变量的视图模型
var allProviders: LiveData<MutableList<ServiceProvider>> = MutableLiveData(mutableListOf())
另外,在视图模型初始化时,我正在调用一个 api 来填充上面的列表:-
private fun getAllMerchantList() {
getAllMerchants(object: RetrofitCallback {
override fun onData(data: Any?) {
//some logic here
allProviders.value?.addAll(allProvidersLocal)
Log.i("TAG", "ServiceProviders inside: ${allProviders.value?.size}")
}
override fun onFailed(ex: String?) {
Log.i("TAG", "onFailed: ${ex.toString()}")
}
})
}
并且,如上所述,在可组合中,例如:-
val viewModel: MainActivityViewModel = viewModel()
val allProviders by viewModel.allProviders.observeAsState()
但是,上面的代码不起作用。它总是以可组合的形式返回空列表。但是如果我通过 viewmodel 功能登录,我可以看到数据。我该如何纠正这个问题?
【问题讨论】:
标签: observer-pattern android-jetpack-compose android-viewmodel