gpt4 book ai didi

android - 撰写 AlertDialog 不关闭

转载 作者:行者123 更新时间:2023-12-05 03:16:47 38 4
gpt4 key购买 nike

我有一个对话框,当我按下按钮时我无法关闭这是我的代码,我相信这是用于 if 循环的,但在那种情况下我需要它来实现它,有什么想法可以帮助我吗?

@Composable
fun PopupWindowDialog(
parentUiState: ParentHomeUiState,
) {
val openDialog = remember { mutableStateOf(false) }
var sliderPosition by remember { mutableStateOf(0f) }

if (!parentUiState.showInAppFeedback){
openDialog.value = true
}
val recommend = sliderPosition.toInt()
Column(
) {
Box {
if (openDialog.value) {
Dialog(
onDismissRequest = { openDialog.value = false },
properties = DialogProperties(),
){
Box(
Modifier
.fillMaxWidth()
.fillMaxHeight()
//.padding(vertical = 70.dp, horizontal = 10.dp)
.padding(vertical = 70.dp )
.background(Color.White, RoundedCornerShape(10.dp))
//.border(1.dp, color = Color.Black, RoundedCornerShape(20.dp))
.border(1.dp, color = Color.White, RoundedCornerShape(20.dp))
) {
Button(
modifier = Modifier
.fillMaxWidth()
.padding(10.dp),
onClick = {
openDialog.value = !openDialog.value
}
) {
Text(
text = "¡Contesta y gana +20 puntos!",
style = MaterialTheme.typography.subtitle2,
fontWeight = FontWeight.Bold,
modifier = Modifier.padding(3.dp))
}
}
}
}
}
}
}

最佳答案

I have a Dialog that I cant close when I press the button

由于您没有显示您发布的代码(可组合)是如何被调用的,我假设 .showInAppFeedback 正在评估 true。

注意代码的这些部分

val openDialog = remember { mutableStateOf(false) }

...
...

if (!parentUiState.showInAppFeedback) {
openDialog.value = true
}

openDialog 是一个状态,当它更改值时,它将重新组合您的整个可组合项,因此当对话框可见并且您将其设置为 false 时通过单击按钮,整个可组合项将重新组合并重新评估您的 if 条件,再次将 openDialog.value 设置为 true,并且对话框永远不会关闭。

我不知道你的用例,但你可以将它包装在 LaunchedEffect

LaunchedEffect(parentUiState.showInAppFeedback) {
openDialog.value = true
}

关于android - 撰写 AlertDialog 不关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74491381/

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