Диалог в Jetpack Compose

Я новичок в Jetpack Compose. Я только что реализовалAlertDialogв Jetpack Compose. Я не совсем понимаю процесс диалогового показа и отклонения. Вот пример кода:

      @Composable
fun CreateAlertDialog() {
    Column {
        val openDialog = remember { mutableStateOf(false) }

        Button(
            onClick = {
                openDialog.value = true
            },
            modifier = Modifier
                .padding(16.dp)
                .fillMaxWidth()
        ) {
            Text(text = "Open Dialog")
        }

        if (openDialog.value){
            AlertDialog(
                onDismissRequest = {
                    openDialog.value = false
                },
                title = {
                    Text(text = "Dialog Title")
                },
                text = {
                    Text(text = "Text content")
                },
                confirmButton = {
                    Button(
                        onClick = {
                            openDialog.value = false
                        }
                    ) {
                        Text(text = "Ok")
                    }
                },
                dismissButton = {
                    Button(
                        onClick = {
                            openDialog.value = false
                        }
                    ) {
                        Text(text = "Cancel")
                    }
                },
                modifier = Modifier.padding(start = 32.dp, end = 32.dp)
            )
        }
    }
}

Это отлично работает, но я не понимаю, как здесь отклоняется диалог. Диалог отображается на основеMutableState

Он показывает диалог, когда это верно. Что происходит после клика? КогдаButtonнажимаетсяopenDialog.valueстановитсяfalseиdialogуволен.

Где выполняется код закрытия диалога?

Как обрабатывается это состояние?

Может ли кто-нибудь объяснить, что это будет полезно для меня. Заранее спасибо.

0 ответов

Другие вопросы по тегам