From d951eb337eb7204f4b3adbf56d02acd3af8e16aa Mon Sep 17 00:00:00 2001 From: HuanCheng65 <22636177+HuanCheng65@users.noreply.github.com> Date: Sat, 30 Sep 2023 23:34:11 +0800 Subject: [PATCH] =?UTF-8?q?pref:=20Dialog=20=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tieba/post/ui/widgets/compose/Dialogs.kt | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/Dialogs.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/Dialogs.kt index fc82a73f..96ec4b22 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/Dialogs.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/Dialogs.kt @@ -320,10 +320,21 @@ fun Dialog( buttons: @Composable (DialogScope.() -> Unit) = {}, content: @Composable (DialogScope.() -> Unit), ) { - if (dialogState.show) { - var isActiveClose by remember { - mutableStateOf(false) + var showDialog by remember { + mutableStateOf(false) + } + var isActiveClose by remember { + mutableStateOf(false) + } + LaunchedEffect(dialogState.show) { + if (dialogState.show) { + showDialog = true + isActiveClose = false + } else { + isActiveClose = true } + } + if (showDialog) { val dialogScope = DialogScope( onDismiss = { isActiveClose = true @@ -334,6 +345,7 @@ fun Dialog( onDismiss = { onDismiss?.invoke() dialogState.show = false + showDialog = false }, properties = AnyPopDialogProperties( dismissOnBackPress = cancelable, @@ -392,15 +404,7 @@ class DialogState private constructor( ) { constructor() : this(show = false) - private var _show by mutableStateOf(show) - - var show: Boolean - get() = _show - set(value) { - if (value != _show) { - _show = value - } - } + var show by mutableStateOf(show) fun show() { show = true