Итак, у меня возникает проблема со следующим кодом: < /p>
@Composable
fun BackMenu(navController: NavController) {
var showDialog by remember { mutableStateOf(false) }
val dialogWidth = 300.dp
val dialogHeight = 300.dp
val coroutineScope = rememberCoroutineScope()
if (showDialog) {
Dialog(onDismissRequest = { }) {
Box(
Modifier
.size(dialogWidth, dialogHeight)
.clip(RoundedCornerShape(16.dp))
.background(Color.White),
contentAlignment = Alignment.Center
) {
Column(
modifier = Modifier.padding(16.dp),
verticalArrangement = Arrangement.SpaceEvenly,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
text = "Are you sure you want to exit?",
modifier = Modifier.padding(bottom = 16.dp)
)
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceEvenly
) {
Button(
onClick = {
coroutineScope.launch {
showDialog = false
navController.popBackStack()
}
}
) {
Text("Yes")
}
Button(
onClick = { showDialog = false }) {
Text("No")
}
}
}
}
}
}
BackHandler(enabled = !showDialog) {
showDialog = true
}
}
< /code>
Я просто пытаюсь, чтобы она закрыла программу, когда они нажимают «да», но когда он запускается, диалог появляется, когда я нажимаю назад, но нажимает да, просто удаляет диалог. Тогда, если я снова нажмую, он закрывает приложение вместо того, чтобы вытащить диалог обратно. Я предполагаю, что не до конца понимаю стек заднего хода, но я не на 100% уверен, что честно.
Идеи, которые я могу попробовать?
Подробнее здесь: https://stackoverflow.com/questions/794 ... pbackstack
JetPack Compose Backhandler и Popbackstack ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение