#android #kotlin #android-jetpack #android-jetpack-compose #android-jetpack-compose-list
#Android #котлин #android-реактивный ранец #android-реактивный ранец-создать #android-jetpack-compose-list
Вопрос:
Я практикуюсь в compose. У меня есть простой дизайн, который содержит LazyColumn и TextField. Все, что я хочу сделать, это исправить текстовое поле внизу. Проблема в том, что поскольку MessageList()
composable не имеет статической высоты, он заполняет весь экран и TextField
исчезает. Я исправил это с помощью ConstraintLayout
composable и установки MessageList()
высоты Dimension.fillToConstraints
. Интересно, есть ли какой — нибудь способ добиться этого, используя только Column()
not ConstraintLayout
.
Column {
MessageList(list, state)
Footer(message) {
message = it
}
}
@Composable
fun MessageList(list : List<ChatItem>, state : LazyListState){
LazyColumn(state = state) {
.....
}
}
@Composable
fun Footer(message : String, onChange : (String) -> Unit){
TextField(value = message, onValueChange = onChange)
}
Комментарии:
1. Вы пробовали использовать
Spacer( modifier = Modifier .height(height) .fillMaxWidth())
2. Я только что попробовал. Это не помогло. В любом случае, спасибо.
3. Пожалуйста, обновите код тем, что вы пробовали. Не уверен, правильно ли я понимаю, но если высота вида динамическая, она все равно должна прокручиваться в пределах вида, связанного справа? Теперь он перекрывается на нижнем виде. Вид снизу должен быть виден независимо от того, какова высота перекрытия. Вы установили
Spacer
высоту на высоту нижнего вида?