作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何为两个 LazyRow 分配相同的滚动状态,以便两行一起滚动?
Jetpack 组合 lists目前没有 LazyHorizontalGrid,那么有什么替代解决方案吗?
Column{
LazyRow(
modifier = Modifier.fillMaxWidth()
) {
// My sublist1
}
LazyRow(
modifier = Modifier.fillMaxWidth()
) {
// My sublist2
}
}
尝试在下面实现:
最佳答案
更新:Google 已正式添加组件 - LazyHorizontalGrid .
我修改了 LazyVerticalGrid 类,并使其仅适用于 GridCells.Fixed(n)
水平网格。
这是完整的要点代码:LazyHorizontalGrid.kt
主要变化
@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 - LazyHorizontalGrid 一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68470940/
我是一名优秀的程序员,十分优秀!