【发布时间】:2021-09-27 09:14:00
【问题描述】:
我正在绘制设备列表
@Composable
fun DeviceListScreen(){
val model: DeviceListViewModel = hiltViewModel()
val myDevices: List<MyDevice> by model.myDevices.observeAsState(emptyList())
for(device in myDevices)
Device(device)
}
在模型中我有一个实时数据
private val items: List<MyDevice> = ArrayList()
private val _myDevices = MutableLiveData<List<MyDevice>> (emptyList())
val myDevices: LiveData<List<MyDevice>> = _myDevices
我更改项目的内容然后更新实时数据
items[0].signal = 54
_myDevices.value = items
但是数据没有在 ui 中更新。 我猜这是因为指向列表的指针没有改变,列表中的项目数也没有改变,因此 compose 不会更新这些数据。
【问题讨论】:
-
我认为你应该使用'observeAsState'
标签: android list android-jetpack-compose