示例代码如下:
@Composable fun SingleEventExample() { val showDialog = remember { mutableStateOf(false) } if (showDialog.value) { AlertDialog( onDismissRequest = { showDialog.value = false }, title = { Text("Event Triggered!") }, confirmButton = { Button(onClick = { showDialog.value = false }) { Text("OK") } } ) }
Button(onClick = { showDialog.value = true }) {
Text("Trigger Event")
}
}
示例代码如下:
val eventLiveData = MutableLiveData
@Composable fun SingleEventLiveDataExample() { val showDialog = remember { mutableStateOf(false) }
// Collect the event
val event = eventLiveData.observeAsState()
// If the event is not consumed and has data, show the dialog
if (!event.value?.hasBeenConsumed == true && event.value?.getContentIfNotHandled() != null) {
showDialog.value = true
}
if (showDialog.value) {
AlertDialog(
onDismissRequest = {
showDialog.value = false
},
title = { Text(event.value?.peekContent() ?: "") },
confirmButton = {
Button(onClick = {
showDialog.value = false
eventLiveData.value = Event("Event Consumed") // Trigger the event
}) {
Text("OK")
}
}
)
}
Button(onClick = {
eventLiveData.value = Event("Event Triggered") // Trigger the event
}) {
Text("Trigger Event")
}
}
示例代码如下:
@Composable fun SingleEventCallbackExample(onEventTriggered: () -> Unit) { val showDialog = remember { mutableStateOf(false) }
if (showDialog.value) {
AlertDialog(
onDismissRequest = {
showDialog.value = false
},
title = { Text("Event Triggered!") },
confirmButton = {