小编Mar*_*Kim的帖子

Kotlin协程+LiveData+DataBinding问题

我在使用 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

1
推荐指数
1
解决办法
907
查看次数