我基本上希望卡片固定在顶部,一组按钮固定在底部(在屏幕键盘上)
像这样使用带有修饰符的 Column 只会导致按钮覆盖顶部卡片:
fun HomeScreen() {
Column(
modifier = Modifier
.fillMaxWidth(),
verticalArrangement = Arrangement.SpaceAround
) {
WordGrid()
}
Column(
modifier = Modifier
.fillMaxWidth(),
verticalArrangement = Arrangement.Bottom
) {
Keyboard()
}
我已经尝试过使用所有不同的 Arrangements,使用一行和使用 Boxes,但似乎无法让它工作。
奇怪的是,在@Preview 中,上面的代码看起来好像有效,但在模拟器上运行时,它们都在屏幕顶部。
使用垫片是另一种选择,但这会导致其他方面的问题吗?可能与屏幕尺寸等有关?
最佳答案
如果您希望按钮行固定在底部,您必须将 Column
设置为 weight
为 1f
,像这样
MyTheme {
Surface(color = MyTheme.colors.background) {
// Cards content
Column(
modifier = Modifier.fillMaxWidth()
) {
Column(
modifier = Modifier.fillMaxWidth().weight(1f)
) {
Card(
modifier = Modifier.fillMaxWidth().height(80.dp).padding(all = 16.dp),
backgroundColor = Color.Red,
) {
Text(text = "Card 1")
}
Card(
modifier = Modifier.fillMaxWidth().height(80.dp).padding(all = 16.dp),
backgroundColor = Color.Green,
) {
Text(text = "Card 2")
}
Card(
modifier = Modifier.fillMaxWidth().height(80.dp).padding(all = 16.dp),
backgroundColor = Color.Blue,
) {
Text(text = "Card 3")
}
}
// Buttons content
Row(
modifier = Modifier.fillMaxWidth()
) {
Button(
onClick = {},
modifier = Modifier.padding(horizontal = 8.dp)
) {
Text(text = "Button 1")
}
Button(
onClick = {},
modifier = Modifier.padding(horizontal = 8.dp)
) {
Text(text = "Button 3")
}
Button(
onClick = {},
modifier = Modifier.padding(horizontal = 8.dp)
) {
Text(text = "Button 2")
}
}
}
}
}
关于android - 将框/列与屏幕底部对齐 Jetpack Compose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71668187/