首页 > 解决方案 > 将 LiveData 对象作为 ViewModel 的参数公开还是由成员函数调用返回更好?

问题描述

通常在 ViewModel 中使用 MutableLiveData,然后 ViewModel 只向观察者公开不可变的 LiveData 对象。 https://developer.android.com/topic/libraries/architecture/livedata#update_livedata_objects

将 LiveData 对象作为 ViewModel 对象的参数公开是否更好:

val data: LiveData<String>
    get() = _data

或者更确切地说,通过调用成员函数返回它:

fun getData(): LiveData<String> {
    return _data
}

所以在第一种情况下我可以写

println(viewModel.data)

而在后者

println(viewModel.getData())

标签: androidmvvmviewmodelandroid-livedatamutablelivedata

解决方案


在内部,两者基本相同。但正如@tyczj 所说,第一种形式更惯用。所以,我更喜欢第一个。


推荐阅读