Jetpack 撰写对话框中的布局更改不会更新大小

时间:2021-07-21 12:41:35

标签: android-jetpack-compose

我有一个对话框,用户可以在其中选择某些内容,并且根据选择,布局将更新。问题是对话框的高度永远不会更新以反映布局更改。

如何重构对话框以使布局适合对话框?

示例:

@Composable
fun AlertDialogTest() {
    var showDialog by remember { mutableStateOf(false)}
    var showExtra by remember { mutableStateOf(false)}
    Button(onClick = { showDialog = true }) {
        Text("Open dialog")
    }
    if (showDialog) {
        AlertDialog(
            text = {
                Column { Button(onClick = {showExtra = true}) {
                        Text ("Show rest of dialog")
                    }
                    if (showExtra) {
                        Text("More text", style = MaterialTheme.typography.h5)
                        Text("Even more text", style = MaterialTheme.typography.h5)
                    }
                }
            },
            confirmButton = { TextButton(onClick = { showDialog = false }) {
                Text("Close")
            }},
            onDismissRequest = {showDialog = false},
        )
    }
}

结果:

enter image description here

2 个答案:

答案 0 :(得分:0)

您是否尝试将修饰符 - animateContentSize()wrapContentSize() 插入对话框?

答案 1 :(得分:0)

它在 beta08 中确实按我的预期工作。然后,在升级到 rc02 后,它停止工作 - 弹出对话框、下拉菜单(基本上是平台窗口支持的所有元素)在内容大小更改时停止正确调整大小。事实上,我发现了一个错误 - https://issuetracker.google.com/issues/194911971。遗憾的是,目前我还没有找到解决方法,所以我们最好等到它修复。