【发布时间】:2020-10-16 03:01:48
【问题描述】:
我正在使用 viewModel 将数据传递给我的撰写视图。问题是我想通过在 viewModel 中的模型中归档来处理展开和折叠视图。因此,如果某些 UI 点击展开方法,我将调用 viewModel 和 doExpand 方法,如下所示:
private val _acquiredCoupons = MutableLiveData<List<AcquiredCoupon>>(listOf())
val acquiredCoupons: LiveData<List<AcquiredCoupon>> = _acquiredCoupons
fun doExpand(coupon : AcquiredCoupon){
val index = _acquiredCoupons.value?.indexOf(coupon) ?: -1
val newItems = _acquiredCoupons.value?.toMutableList().also {
it?.get(index)?.isExpanded = true
}
_acquiredCoupons.value = newItems
Timber.i("Mahdi $index")
}
但问题是在撰写 UI 中更新模型后不会触发并且重新撰写不会发生! 我正在观察这样的实时数据:
val items = viewModel.acquiredCoupons.observeAsState(initial = emptyList())
【问题讨论】:
-
你能在你观察livedata的地方显示代码吗?
-
确保您使用的是
by而不是=。 -
你找到解决办法了吗?
-
@ImMathan 我通过放置新的 stateFlow 解决了它,并且只是观察它而不采取任何行动,并且每次我更新扩展状态时,也会更新该值。这只是对我有用的伎俩。
-
您能分享一下解决方案吗?谢谢
标签: android kotlin android-jetpack android-jetpack-compose