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
存储所有可组合项
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
存储所有可组合项