Tag: android mvvm

使用LiveData和数据绑定

随着Android体系结构组件的稳定,我开始将所有的基本ViewModel更新为ViewModel的新实现。 在我的理解中,建议使用LiveData来保存Model类,因为它更好地处理生命周期。 我喜欢使用Data Binding因为它使得代码在Java / Kotlin方面更加清晰,并且不需要“观察”值更改来更新UI。 然而,如果Model (或ViewModel)扩展了BaseObservable而LiveData则不扩展, LiveData使用Data Binding的布局只能监视数据的变化。 我明白LiveData的主要目标之一是观察和更新用户界面编程,但对于简单的更新, Data Binding是非常有用的。 这个问题已经被报道( GitHub和堆栈溢出 ),首先是说1.0版本会有,现在说这个function正在开发中。 为了同时使用LiveData和Data Binding ,我创建了一个扩展BaseObservable类的非常简单的实现: import android.arch.lifecycle.LiveData import android.arch.lifecycle.MutableLiveData import android.databinding.BaseObservable class ObservableMutableLiveData() : BaseObservable() { private var data: MutableLiveData = MutableLiveData() constructor(data: T) : this() { this.data.value = data } public fun set(value: T) { if (value != data.value) { […]