我在使用 Kotlin 协程 + LiveData + DataBinding 时遇到问题。
我的代码如下
class TempViewModel: ViewModel() {
val creatorInfo: LiveData<CreatorInfo> = liveData(context = viewModelScope.coroutineContext + Dispatchers.IO) {
val data = CreatorInfoSettingRepository.requestCreatorInfo().body()
emit(data!!)
}
}
Run Code Online (Sandbox Code Playgroud)
和 xml 像这样使用数据绑定
<TextView
android:text="@{viewModel.creatorInfo.email}" />
<TextView
android:text="@{viewModel.creatorInfo.phone}" />
....
Run Code Online (Sandbox Code Playgroud)
我检查从服务器(retrofit2)获取数据(CreatorInfo)是否成功,但数据未通过数据绑定应用于UI。
另外,当像下面这样检查观察时,观察块也会被调用。
viewModel.creatorInfo.observe(fragment, Observer { creatorInfo ->
Log.d("ssong","test")
})
Run Code Online (Sandbox Code Playgroud)
有谁可以帮忙吗?
android kotlin android-databinding android-livedata kotlin-coroutines