[英]Data binding LiveData from Transformation - Android Kotlin
[英]Android data binding does not observe kotlin's liveData builder
Android 數據綁定未觀察到 kotlin 的 liveData builder
下面的代碼將創建一個 LiveData,它應該被XML
的數據綁定觀察到,但它不起作用
val text =
liveData(Dispatchers.Default) {
emit("Hello")
}
另一方面,如果它在Kotlin
被觀察到它工作正常
vm.text.observe(lifeCycleOwner,{
binding.texti.text = it
})
xml:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/texti"
android:text="@{viewModel.text}"
/>
如果我將實時數據的定義更改為:
val text = MutableLiveData("Hello")
數據綁定自動觀察並設置文本
是我做錯了還是bug?
您是否設置了綁定的生命周期所有者? 綁定初始化應如下所示:
override fun onCreate(savedInstanceState: Bundle?) {
val binding = DataBindingUtil.setContentView<MyActivityBinding>(this, R.layout.my_activity)
binding.setLifecycleOwner(this)
binding.viewModel = viewModel.get()
...
}
有關更多詳細信息,請參閱: 使用 LiveData 通知 UI 有關數據更改的信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.