gpt4 book ai didi

android - 一起滚动多个 LazyRows - LazyHorizo​​ntalGrid 一样吗?

转载 作者:行者123 更新时间:2023-12-04 23:59:03 26 4
gpt4 key购买 nike

如何为两个 LazyRow 分配相同的滚动状态,以便两行一起滚动?

Jetpack 组合 lists目前没有 LazyHorizo​​ntalGrid,那么有什么替代解决方案吗?

Column{
LazyRow(
modifier = Modifier.fillMaxWidth()
) {
// My sublist1
}
LazyRow(
modifier = Modifier.fillMaxWidth()
) {
// My sublist2
}
}

尝试在下面实现:

sample horizontally scroll image

最佳答案

更新:Google 已正式添加组件 - LazyHorizontalGrid .


我修改了 LazyVerticalGrid 类,并使其仅适用于 GridCells.Fixed(n) 水平网格。

这是完整的要点代码:LazyHorizontalGrid.kt

lazyhorizontalgrid

主要变化

@Composable
@ExperimentalFoundationApi
private fun FixedLazyGrid(
nRows: Int,
modifier: Modifier = Modifier,
state: LazyListState = rememberLazyListState(),
contentPadding: PaddingValues = PaddingValues(0.dp),
scope: LazyGridScopeImpl
) {
val columns = (scope.totalSize + nRows - 1) / nRows
LazyRow(
modifier = modifier,
state = state,
contentPadding = contentPadding,
) {
items(columns) { columnIndex ->
Column {
for (rowIndex in 0 until nRows) {
val itemIndex = columnIndex * nRows + rowIndex
if (itemIndex < scope.totalSize) {
Box(
modifier = Modifier.wrapContentSize(),
propagateMinConstraints = true
) {
scope.contentFor(itemIndex, this@items).invoke()
}
} else {
Spacer(Modifier.weight(1f, fill = true))
}
}
}
}
}
}

代码使用

LazyHorizontalGrid(
cells = GridCells.Fixed(2)
) {
items(items = restaurantsList){
RestaurantItem(r = it, modifier = Modifier.fillParentMaxWidth(0.8f))
}
}

关于android - 一起滚动多个 LazyRows - LazyHorizo​​ntalGrid 一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68470940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com