下面是我尝试使用的MutableStateFlow值:
val songList: MutableStateFlow<MutableList<Song>> = MutableStateFlow(arrayListOf())
我需要观察上面的MutableList上的变化(在add、removeAt等方法之后),但无法实现。我的猜测是,由于只有列表的元素发生变化,而不是列表本身发生变化,所以collect方法不会被触发。
如果可能,我如何使用StateFlow实现这一点?如果不可能,正确的方法是什么?
请注意,我需要arrayListOf()的初始值,因此LiveData可能对我来说不够。
3条答案
按热度按时间bmvo0sr51#
解决方法:
1.创建帮助器扩展函数:
1.对操作作出React(例如:点击事件):
1.行程在
ViewModel
:czq61nw12#
在视图模型中:
在可组合:
cyej8jka3#
为了更新***Stateflow***中的***MutableList***,您必须基于如下条件Map项,我已经完成了这一点,它的性能很好。
这里的**_userList是一个MutableStateFlow**@Sam Sen的解释对我的变通解决方案帮助很大。