gpt4 book ai didi

android - ViewModel 支持属性 [kotlin]

转载 作者:行者123 更新时间:2023-12-02 10:46:46 25 4
gpt4 key购买 nike

查看一些 Google 演示应用程序(例如向日葵或 Google io 2018 应用程序)的代码,我注意到对于 viemodel 的支持属性,它们使用具有自定义 getter 的相同类型的单独实例;像这样:

private val _userData: MutableLiveData<User>
val userData: LiveData<User>
get() = _userData

但是他们为什么要这么做呢?直接使 _userData 可访问不是更好吗?难道是因为 _userDataMutableLiveData 他们不希望观察者能够更改值?

最佳答案

暴露给 Activity 或 Fragment 的

userData 必须是不可变的,因为 View 只需要观察 LiveData。因此,我们需要让实际的 _userData 返回一个 LiveData

一种方法是使用 Kotlin coding convention并创建两个变量,_userDatauserData,一个是可变的,另一个不是:

If a class has two properties which are conceptually the same but one is part of a public API and another is an implementation detail, use an underscore as the prefix for the name of the private property.

关于android - ViewModel 支持属性 [kotlin],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53050257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com