问题标签 [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.
kotlin-coroutines - 与数据绑定一起使用时,LiveData 或 StateFlow 会跳过一些状态
- 布局
- 视图模型
- **绑定适配器**
我正在从存储库中获取数据。它将按以下顺序设置执行结果:progress = true,data,progress = false。在绑定适配器中,我只得到空闲状态和进度=假。中间状态的其余部分被跳过。如果我用 LiveData 替换 StateFlows,也会发生同样的事情
android - Kotlin 中是否默认停止 CircularProgressBar?
我正在从外部 API 获取数据。在 ViewModel 类中,我收集如下数据:
在我使用的活动类中:
一旦资源开始加载,进度条就会开始旋转。一旦我得到数据,当资源成功时,它会显示在 CardView 中并且进度条停止旋转。我从来没有在我的代码中添加阻止它旋转的东西。这怎么可能?它是否仍然处于活动状态(旋转)并且我需要以编程方式自行停止它,还是自动停止?如何处理这种情况?
android - 在数据绑定中未观察到 Stateflow 值
我有一个状态流,它为我提供了来自 ViewModel 的可变状态流的值,我想做的是,我想显示基于按钮单击的隐藏 web 视图。当值为 true 时,我想显示 web 视图,而当我想隐藏它时,我将其值更改为 false。值正在正确更新,但未反映内部数据绑定。这是我的视图模型
这是我进行比较的 XML
android - Kotlin Flows,在没有活动订阅者时执行代码
我创建了一个位置存储库,负责收集位置数据并将其传输给任何收听的人,现在的代码如下所示:
现在我正在处理当前的订阅者数量AtomicInteger
,有没有办法在第一个订阅者订阅和最后一个订阅者取消订阅时自动运行startUpdates
代码和代码?stopUpdates
android - 如何映射 StateFlow 值并通过数据绑定将其传递给视图
我有一个StateFlow
我想与 Android 数据绑定一起使用的。作为流程中的值,我使用密封类型:
我想像这样在视图中使用它:
所以在视图模型中我有:
当我启动应用程序时出现问题:
问题当然是map
操作符将类型更改为StateFlow
无法Flow
在 Android 数据绑定中使用。有没有办法映射StateFlow
值而不将其转换为Flow
?我知道有一个stateIn
运算符Flow
,但我不太确定它是否缩进(StateFlow
-> Flow
-> StateFlow
)以及如何在viewModelScope
通过 ViewModel 变量将其传递给视图时开始它。
android - MutableStateFlow:无法在 ActivityLifecycleCallbacks 上的协程的后台线程上调用 setValue
问题
我Cannot invoke setValue on a background thread
在使用时MutableStateFlow
收到错误消息ActivityLifecycleCallback
,我在将生命周期喷气背包更新到 2.4.0 并使用后收到此错误repeatOnLifecycle
。使用由 koin 注入到 ActivityLifecycleCallback 中响应的活动的视图模型调用网络接口。
执行
打回来
视图模型
观察者
android - 无法在 Activity 中收集 StateFlow
我只是在学习 StateFlow。我有一个简单的 StateFlow 来观察:
我试图在这样的活动中观察它:
它不会编译,我收到编译错误:
Type mismatch. Required: FlowCollector<Event<Boolean>> Found: () → Unit
我在用着:
// 生命周期组件
其中 $lifecycle_version = 2.4.0
android - 如何正确使用 StateFlow 和 Jetpack compose?
我正在 ViewModel 中进行 API 调用,并在可组合物中观察它,如下所示:
在可组合中,我正在听这样的“someUIState”:
我面临的问题是 FancyUI 可组合中 someUIState 的“何时”块代码在可组合重组期间被多次触发,即使没有单击 Scaffold 中的按钮(例如:当 AlertDialog 出现时)。我在哪里做错了?在 Composable 中使用 StateFlow 观察数据的正确更好方法是什么?
android - 无法使用模型更新 MutableStateFlow
我正在尝试更新我的模型的参数。我有一个 MutableStateFlow 列表,其中包含我创建的一些模型。
我想在我的其他课程中做的是更新模型中的“完成”参数。这就是我尝试过的,但我收到以下错误:
类型不匹配。必需:列表<"MyModel"> 找到:MyModel