有什么方法可以在不在 jetpack-compose 中使用 ConstraintLayout 的情况下实现 Dimension.fillToConstraints 行为?
Is there any way to achive that Dimension.fillToConstraints behaviour without using ConstraintLayout in jetpack-compose?
我正在练习作曲。我有一个包含 LazyColumn 和 TextField 的简单设计。我想要做的就是将 TextField 固定在底部。问题是因为 MessageList()
可组合项没有静态高度,它会填满整个屏幕并使 TextField
消失。我通过使用 ConstraintLayout
可组合项并设置 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)
}
您可以使用类似的东西:
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")
}
}
我正在练习作曲。我有一个包含 LazyColumn 和 TextField 的简单设计。我想要做的就是将 TextField 固定在底部。问题是因为 MessageList()
可组合项没有静态高度,它会填满整个屏幕并使 TextField
消失。我通过使用 ConstraintLayout
可组合项并设置 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)
}
您可以使用类似的东西:
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")
}
}