jetpack compose:使用 items 参数创建 LazyColumn

jetpack compose : creating LazyColumn with items parameter

LazyColumn(modifier = Modifier.fillMaxWidth(), state = listState) {
    //ABC Category Items
    item {
        ABC(componentCoordinator = componentCoordinator)
    }

    //DEF Category Items
    item {
        DEF(coordinator = screenCoordinator)
    }

    //IJK Category Items
    item {
        IJK()
    }

    //XYZ Category Items
    item {
        XYZ(coordinator = screenCoordinator)
    }
}

@Composable
fun ABC(
    viewModel: ViewModel = hiltViewModel(),
    componentCoordinator: ComponentCoordinator
) {
    LazyRow(
        modifier = Modifier
            .fillMaxWidth()
            .height(64.dp),
        horizontalArrangement = Arrangement.SpaceEvenly,
    ) {
.........
})


所有 ABC、DEF、IJK、XYZ 都是具有 Column、Row、LazyRow 组合的可组合方法。

我必须将它们全部放在单个项目 {} 中,以便根据它们的索引(使用 listState.animateScrollToItem(int))分别跳转它们。现在,创建此 LazyColumn 的更好方法是使用带有这些可组合函数列表的“items”(而不是“item”)参数。

像这样:

LazyColumn(
        modifier = Modifier.fillMaxWidth(), state = listState
    ) {

        items(myItems, key = { it.uri }) { item ->
....
})

这个和 LazyColumn 函数体的数组初始化代码(因为这些方法没有相同的参数)可能是什么?

怎么样

var itemsList = mutableStateListOf<@Composable (vararg : Any) -> Unit

存储所有可组合项