“我尝试切换到 Arrangement.Start,它可以工作,但它不能保持其他项目之间的相等间距。”
FlowRow(
modifier = Modifier
.fillMaxWidth(),
verticalArrangement = Arrangement.spacedBy(8.dp),
horizontalArrangement = Arrangement.SpaceBetween, // Start alignment for boxes
) {
// Create 8 square boxes
repeat(8) {
Box(
modifier = Modifier
.size(120.dp) // Adjust size for square boxes
.background(Color.Blue) // Change color as needed
)
}
}
你想实现的功能在本机上是无法实现的
FlowRow
,因为无法horizontalArrangement
仅为最后一行指定单个行。你只能通过变通方法来实现。当您尝试构建网格时,我建议使用
LazyVerticalGrid
已经具备您尝试实现的所有功能的网格:它会从一开始就为您提供相等的间距和排列,并且如果有足够的屏幕空间,它会动态显示更多列。此外,它会延迟布局其项目,这意味着当您显示大量项目时不会出现性能问题。
输出: