1

如下代码所示,我得到了list(类型:Flow<List< T>>),

如何使用它来更新lazyColumn的项目,所以当房间数据发生变化时,lazyColumn会相应地更新项目?

非常感谢。

@Composable
fun SomeContent(context: Context) {
    // get the view model ref
    val viewModel: SomeViewModel =
        viewModel(factory = SomeViewModelFactory(Db.getInstance(context)))

    // get the list from room, it is a Flow list
    val list = viewModel.sumDao.getAllRows()

    LazyColumn(
    ) {
        // I need to use the list in below, but got errors, how to do?
        items(list.size) {
        SomeListItem(list[it])
        }
    }
}
4

1 回答 1

1

您必须按如下方式收集您的 FlowList

val list = viewModel.sumDao.getAllRows().collectAsState(initial = emptyList())

而不是项目,使用 itemsIndexed

itemsIndexed(list) {idx, row -> SomeListItem(row)}

让我知道以上是否有效。

于 2022-02-14T03:35:58.740 回答