gpt4 book ai didi

android - AnimatedVisibility 不会在 Jetpack Compose 的对话框中扩展高度

转载 作者:行者123 更新时间:2023-12-04 23:37:35 26 4
gpt4 key购买 nike

所以我在我的项目中有这个可组合的......

 @Composable
private fun ShowDialog() {
var showText by remember { mutableStateOf(false) }

val text = if (showText) {
"Hide Text"
} else {
"Show Text"
}

Dialog(onDismissRequest = { }) {
Card(modifier = Modifier.padding(15.dp)) {
Column(modifier = Modifier.padding(15.dp)) {
AnimatedVisibility(visible = showText) {
Text(
text = "Here is the show text sample",
modifier = Modifier.padding(5.dp),
style = MaterialTheme.typography.body1,
color= Color.Black
)
}

Button(onClick = { showText = !showText }) {
Text(text = text)
}
}
}


}
}
如果您已经浏览了代码,您可能会得到它应该做的事情。即它基本上是一个带有一个文本和一个按钮的对话框。当用户单击按钮时,按钮上方的文本将切换其可见性。
但是代码的问题是,当我单击按钮时,会出现文本,但按钮会变得不可见,换句话说,文本会占用空间并将按钮推到下方。但是在这种情况下,卡片或列中的容器并未扩展其高度。
它应该像那样工作吗?或者这是一个错误?
我试过 animateContentSize()ColumnCard但它没有用。并检查了 StackOverflow 上的类似问题,但没有找到任何有用的信息。

最佳答案

幸运的是,我为这个问题找到了一个临时的工作答案,
我们需要使用的只是通过DialogProperties(usePlatformDefaultWidth = false)作为属性 parameter用于对话。这将使对话框像这样调整大小

    @Composable
private fun ShowDialog() {
var showText by remember { mutableStateOf(false) }

val text = if (showText) {
"Hide Text"
} else {
"Show Text"
}

Dialog(
onDismissRequest = { },
properties = DialogProperties(usePlatformDefaultWidth = false)
) {
Card(
modifier = Modifier
.padding(15.dp)
.wrapContentWidth()
.animateContentSize()
) {
Column(modifier = Modifier.padding(15.dp).fillMaxWidth(1f)) {

AnimatedVisibility(visible = showText) {
Text(
text = "Sample",
modifier = Modifier
.padding(5.dp)
.fillMaxWidth(1f),
style = MaterialTheme.typography.body1,
color = Color.Black
)
}
Button(onClick = { showText = !showText }) {
Text(text = text)
}


}
}


}
}
注意:它使用 @ExperimentalComposeUiApi

This API is experimental and is likely to change in the future.

关于android - AnimatedVisibility 不会在 Jetpack Compose 的对话框中扩展高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68818202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com