簡體   English   中英

LiveData 或 DataBinding Observer

[英]LiveData or DataBinding Observer

我在我的 Android 應用程序上使用 MVVM,在 ViewModel 上我有很多觀察者(來自數據綁定),比如ObservableBooleanObservableField ,我讀到我可以使用LiveData/MutableLiveData代替這個觀察者......有什么區別? 我可以用LiveData/MutableLiveData替換我所有的數據綁定觀察者嗎?

例如:

代替:

val loading: ObservableBoolean = ObservableBoolean()

經過:

val loading: MutableLiveData<Boolean> = MutableLiveData()

取決於您從哪里讀取數據。

在我們當前的項目中,我們直接從RoomDB閱讀。 RoomDB具有發送回liveData對象的能力。

  1. 通過ViewModel,您對RoomDB進行查詢,返回LiveData(RoomDB將是您的單一真相來源)
    1. 您的視圖說一個活動或片段 - 作為觀察者訂閱此視圖模型
    2. 然后根據返回的響應更新視圖。
    3. 您還可以通過Android Databinding直接綁定xml( 使用帶數據綁定的LiveData

如果您在檢索后進行任何修改,則通常使用可變數據

這是一個很好的起點 https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#0

很多次都過去了,我學到了很多東西......用LiveData替換所有Data Binding Observable,因為LiveData尊重Activity生命周期,可以在JetPack lib中使用,比如Room,Coroutine ......

如果您的目標只是根據視圖模型中原始數據類型中數據的更改來更改 xml 中視圖的基本屬性,那么使用數據綁定很簡單。 對於其余情況,實時數據是唯一的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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