如何解决数据绑定中的 Android StateFlow 或 MutableStateFlow
我正在 DataBindings 中尝试 StateFlow,在我能找到的所有示例中,大多数看起来像 this one 的副本,在 ViewModel 中使用了两个变量进行一个数据绑定。一个私有的 MutableStateFlow 和一个公共的 StateFlow。而 StateFlow 几乎只是从 MutableStateFlow 读取值。为什么是这样?只有一个变量,一个 MutableStateFlow 并一起跳过 StateFlow 变量不是更容易吗?
解决方法
这只是一个简单的封装案例(与数据绑定/Android 无关)。从技术角度来看,这是一个多余的步骤,并没有什么区别。但是,从设计的角度来看,它限制了在包含类之外修改 StateFlow
值。
这是带有“可观察数据持有者”(MutableLiveData
和 LiveData
)的一种非常常见的模式,这可以被认为类似于拥有带有私有 setter 的属性。事实上,如果您只需要收集流而不访问其值,您甚至可以使用 Flow
作为公开类型(尽管正如@MarkKeen 指出的那样,这不适用于数据绑定)。>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。