Есть ли способ добиться этого поведения Dimension.fillToConstraints без использования ConstraintLayout в Jetpack-compose?

Я занимаюсь сочинением. У меня простой дизайн, содержащий LazyColumn и TextField. Все, что я хочу сделать, это зафиксировать TextField внизу. Проблема в том, что составной объект не имеет статической высоты, он заполняет весь экран и делает TextFieldпропадать. Я исправил это с помощью composable и настройки MessageList() высота Dimension.fillToConstraints. Интересно, есть ли способ добиться этого, используя только Column() нет 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 ответ

Вы можете использовать что-то вроде:

      val itemsList = (0..60).toList()

Column {
    LazyColumn(modifier = Modifier.weight(1f)){
        items(itemsList) {
            Text("Item is $it")
        }
    }
    Row( verticalAlignment = Alignment.Bottom) {
        Text(text = "Footer row")
    }
}