问题标签 [kotlin-stateflow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Flow 多次收集时会发出不同的值
我创建了一个从中发出数据的流。当我两次收集此流时,从同一个变量发出了 2 组不同的数据,而不是向两个收集器发出相同的值。
我有一个我自己创建的简单流程。文本将每秒记录两次
在我的 viewModel 中,我有一个简单的函数可以获取上一个 Flow
在我的 Fragment 中,我收集并显示我的 Flow
如果我将 Flow 转换为 StateFlow 或 SharedFlow,我不再有这个问题。我不明白为什么会发生这种情况,因为我使用的是相同的“demoFlow”变量。有没有办法在不转换为 StateFlow 或 SharedFlow 的情况下从“demoFlow”获取相同的值?
android - Android kotlin 中 SharedFlow 的使用
嘿,我正在学习 kotlin 中的流程。我正在学习MutableStateFlow和MutableSharedFlow。我试图在现实世界的例子中学习MutableStateFlow 。但我无法获得MutableSharedFlow示例,它更适合哪个位置。我尝试了一些MutableStateFlow
例如,当我们从 api 获取数据时,我们可以使用 seal 类进行相应的填充。
LoggedState.kt
SettingsViewModel.kt
活动.kt
我都得到了MutableStateFlow示例。有人可以指导我如何在现实世界的例子中做MutableSharedFlow 。我也对参数很好奇
重播
额外缓冲容量
onBufferOverflow
谢谢
android - Android LiveData/StateFlow 列表项属性更新问题
所以我更新我RecylerView
的StateFlow<List>
如下:
我的数据类:
我的 ViewModel 逻辑:
问题: UI没变,但是isSelected
里面_student
变了,怎么回事?(与 相同LiveData
)
android - Jetpack 使用 StateFlow 编写、获取和添加更多项目到 LazyColumn
我有一个LazyColumn
呈现项目列表的。但是,我现在想获取更多项目以添加到我的惰性列表中。我不想重新渲染已经在 中渲染的项目LazyColumn
,我只想添加新项目。
我该怎么做StateFlow
?我需要传递一个page
字符串来获取下一组项目,但是如何将页面传递给该repository.getContent()
方法?
在我的 UI 中,我有这段代码来观察流程并呈现LazyColumn
:
我确实意识到 Compose 有一个分页库,但我正在尝试实现类似的东西,除了用户负责是否加载下一个项目。
这是期望的行为:
kotlin - 收集 stateFlow 列表
我有一个整数状态流列表。
我需要一个单一的状态流,它是列表状态流的总和。
我怎么能这样做?
android - 将实时数据转换为状态流
安卓、科特林
我的数据源类中有以下实时数据,我无法将其更改为 StateFlow,因此需要在我的 viewModel 中将其转换为 StateFlow
在我的 ViewModel 中,我有以下内容,这是我不确定这是否是将 LiveData 转换为 StateFlow 的正确方法的部分:
然后在我的片段中,我只收集结果
这是将 LiveData 转换为 StateFlow 的最佳实践吗?有什么我应该注意的吗?
android - 什么时候应该在存储库中使用 LiveData 或 Flow vs Domain Model?
互联网上提供的大量示例使您感到困惑,一些教程仅返回 Domain Model ,一些 return LiveData<DomainModel>
,还有一些 return Flow<DomainModel>
。我知道这一点LiveData
并且Flow
是不同的,但是你什么时候应该返回常规域模型与那些像 LiveData、Flow、StateFlow、SharedFlow 等可观察的模型?有什么区别吗?
来自 Android Architecture 组件示例
一些教程
另一个教程
我不是在问LiveData
vs Flow
,这个问题显然与何时使用常规域模型对象与可观察对象有关。在什么情况和情况下。
android - 在 repo 和视图模型中观察到具有 StateFlow 实时更改的 Firestore,但适配器未更新
作为一名需要适应变化的开发人员,我在某处读到它说:
如果您没有为您的 Android 项目选择正确的架构,那么随着代码库的增长和团队的扩展,您将很难维护它。
我想Clean Architecture
用MVVM
我的应用数据流将如下所示:
模型类
Dtos
和
存储层是
NoteRepositoryImpl 是:
ViewModel 层是:
NoteViewModelImpl 是:
最后但并非最不重要的片段是:
有了上述所有逻辑,我面临着TWO
问题
问题 - 1 如前所述,我在集合中添加了 SnapshotListener:
如果我从Firebase 控制台Repository
更改文档的值,我会在和中获得更新的值ViewModel
,但不会更新传递给的注释列表adapter
,因此所有项目都是相同的。
问题 - 2
如果我使用以下命令从列表/回收站视图中删除任何项目:
Repository
我仍然在和中获得更新的列表(即新的笔记列表,不包括已删除的笔记)ViewModel
,但没有更新传递给的笔记列表adapter
,因此所有项目都是相同的,没有并排除已删除的项目。
问题我在初始化/更新适配器时到底在哪里出错?因为ViewModel
并且Repository
工作正常。
android-jetpack-compose - 流动和撰写
我试图在 lifeCycleScope 之后访问该列表,但它确实只显示了初始值。它只传递初始值!!