android 用垫片填充Jetpack Compose上的剩余空间

z5btuh9x  于 2023-08-01  发布在  Android
关注(0)|答案(3)|浏览(130)

我想我可能错过了一些东西,有没有一种方法可以在Compose Beta01中实现“填充剩余的空间”,而不需要额外的Box元素 Package 间隔符?不幸的是,Spacer没有权重修改器。

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

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

irlmq6kh

irlmq6kh1#

据我所知,Column.arrangement均匀地适用于所有孩子。
如果你只是想最大限度地填充剩余的空间,那么一个带有weight(1.0f)修饰符的Spacer可能就是你想要的:

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") 
}

字符串

bwntbbo3

bwntbbo32#

这是你需要的吗

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

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

6yjfywim

6yjfywim3#

我们可以使用这个代码片段来克服这种情况。

Row(horizontalArrangement = Arrangement.SpaceBetween) {
                Text(text = "Text 1")
                Spacer(modifier = Modifier.weight(1.0f))
                Text(text = "Text 2")                    
            }

字符串

相关问题