使用 Jetpack Compose 上的 Spacer 填充剩余空间

Edu*_*eda 31 android android-jetpack-compose

有没有一种方法可以在 Compose 中实现“填充其余空间”,而无需额外的Box元素包裹SpacerSpacer不幸的是,没有重量调节器。

Column(
    modifier = Modifier.height(120.dp).fillMaxWidth()
) {
    Text(text = "A")
    Box(modifier = Modifier.weight(1f)) {
        Spacer(Modifier.fillMaxHeight())
    }
    Text(text = "B")
}
Run Code Online (Sandbox Code Playgroud)

编辑

额外的盒子根本没有必要。我只是误用了修改器系统。作为旁注,所选答案可能是实现这一目标的另一种好方法。

Ste*_*nke 67

据我所知,Column.arrangement这同样适用于所有儿童。

如果您只想最大程度地填充剩余空间,则Spacerwithweight(1.0f)修饰符可能就是您想要的:

Column(
    modifier = Modifier
        .fillMaxWidth()
) {
    Text("Text A") // top aligned
    Spacer(modifier = Modifier.weight(1.0f)) // fill height with spacer
    Text("Text B") // those two Texts are bottom aligned
    Text("Text C") 
}
Run Code Online (Sandbox Code Playgroud)


Cod*_*oet 16

这是你需要的吗?

Column(
    modifier = Modifier
        .height(120.dp)
        .fillMaxWidth(),
    Arrangement.SpaceBetween
) {
    Text(text = "A")
    Text(text = "B")
}
Run Code Online (Sandbox Code Playgroud)

您可以将元素排列为 SpaceAround、SpaceEvenly 和 SpaceBetween。