如何修复 FlowRow 项目以跟随 Start,同时保持它们之间的间距相等?

问题描述 投票:0回答:1

“我尝试切换到 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

               )
           }
       }

enter image description here

kotlin android-studio android-jetpack-compose
1个回答
0
投票

您想要实现的目标对于本机

FlowRow
来说是不可能的,因为不可能仅为最后一行指定单独的
horizontalArrangement
。您只能通过解决方法来实现它。

当您尝试构建网格时,我建议使用

LazyVerticalGrid
代替,它已经带来了您尝试实现的所有功能:

LazyVerticalGrid(
    columns = GridCells.Adaptive(120.dp),
    verticalArrangement = Arrangement.spacedBy(8.dp),
    horizontalArrangement = Arrangement.spacedBy(8.dp)
) {
    items(8) {
        Box(
            modifier = Modifier
                .size(120.dp) // Adjust size for square boxes
                .background(Color.Blue) // Change color as needed
        )
    }
}

输出:

Screenshot

© www.soinside.com 2019 - 2024. All rights reserved.