簡體   English   中英

Android 數據綁定未觀察到 kotlin 的 liveData builder

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM