2 data-binding android kotlin android-livedata
Android数据绑定不观察kotlin的liveData构建器
以下代码将创建一个 LiveData,并且应该通过数据绑定来观察它,XML但它不起作用
val text =
liveData(Dispatchers.Default) {
emit("Hello")
}
Run Code Online (Sandbox Code Playgroud)
另一方面,如果它被观察到Kotlin它工作得很好
vm.text.observe(lifeCycleOwner,{
binding.texti.text = it
})
Run Code Online (Sandbox Code Playgroud)
xml:
val text =
liveData(Dispatchers.Default) {
emit("Hello")
}
Run Code Online (Sandbox Code Playgroud)
如果我将实时数据的定义更改为:
val text = MutableLiveData("Hello")
Run Code Online (Sandbox Code Playgroud)
数据绑定自动观察并设置文本
是我做错了还是bug?
您是否设置了绑定的生命周期所有者?绑定初始化应如下所示:
override fun onCreate(savedInstanceState: Bundle?) {
val binding = DataBindingUtil.setContentView<MyActivityBinding>(this, R.layout.my_activity)
binding.setLifecycleOwner(this)
binding.viewModel = viewModel.get()
...
}
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅:使用 LiveData 通知 UI 有关数据更改的信息
| 归档时间: |
|
| 查看次数: |
810 次 |
| 最近记录: |