Выровняйте поле/столбец по нижнему краю экрана Jetpack Compose
По сути, я хочу, чтобы карты были закреплены вверху, а группа кнопок закреплена внизу (на экранной клавиатуре).
Использование столбца с таким модификатором приводит только к тому, что кнопки закрывают верхние карты:
fun HomeScreen() {
Column(
modifier = Modifier
.fillMaxWidth(),
verticalArrangement = Arrangement.SpaceAround
) {
WordGrid()
}
Column(
modifier = Modifier
.fillMaxWidth(),
verticalArrangement = Arrangement.Bottom
) {
Keyboard()
}
Я пытался использовать все различные аранжировки, использовать ряд и ящики, но не могу заставить его работать.
Любопытно, что в @Preview приведенный выше код выглядит так, как будто он работает, но при запуске на эмуляторе они оба отображаются вверху экрана.
Использование проставки — еще один вариант, но вызовет ли это другие проблемы? может быть, с размерами экрана и т. д.?
1 ответ
Если вы хотите, чтобы строка кнопок была закреплена внизу, вы должны установить
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")
}
}
}
}
}