如何在 FlowLayout 中添加行和列之间的间距?

Rul*_*lan 3 android flowlayout android-jetpack-compose jetpack-compose-accompanist

我正在FlowLayout从带有本机 compose v1.4.0 的伴奏库迁移。为了给出列和行之间的间距,我们有FlowCrossAxisAlignmentFlowMainAxisAlignment,但是现在这种方法不可用,在新 api 中的垂直轴上FlowRow我们可以使用,Arrangement.spacedBy(16.dp)但其他轴没有类似的东西,他们给出的解决方案是放置底部填充在每个元素上,但这也适用于最后一行。有解决办法吗?

问题: https: //issuetracker.google.com/issues/268365538

这是我的代码和结果:

FlowRow(modifier = modifier.background(color =Color.Blue), horizontalArrangement = Arrangement.spacedBy(16.dp)) {
            chips.forEach { chip ->
                Chip(
                    modifier = Modifier.background(color = Color.Cyan).padding(bottom = 16.dp),
                    label = chip.label
                )
            }
        }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

正如您在底部看到的,生成了青色填充,这就是我想要避免的

编辑:问题报告中的提案似乎已被接受,他们将在下一个版本中添加该功能。

Ran*_*ndy 5

看起来最近添加了对此的支持: https ://issuetracker.google.com/issues/268365538

https://android-review.googlesource.com/c/platform/frameworks/support/+/2478295

但是,我认为它实际上还没有发布版本。看起来它是在 23 月 23 日 Jetpack Compose 更新后几天合并的,我认为从那时起就没有发布过新版本。好消息是,此功能应该在下一个版本中提供。

编辑:正如另一个答案所述,此功能在 androidx.compose.foundation:foundation-layout 中可用。截至发表评论时,版本为 beta02。因此,添加到implementation "androidx.compose.foundation:foundation-layout:1.5.0-beta02"您的build.gradle将使. 我测试了这个,它确实有效。verticalArrangementFlowRow