【发布时间】:2022-11-12 07:36:40
【问题描述】:
我正在应用程序中实现注销操作。我希望当用户单击注销时,转到登录。当用户采用此路径时:登录->主页->设置(他单击注销的位置)->登录,当我按回时,应用程序进入后台并关闭,这是我想要的行为。
但是,当用户采用这条路线时: 登录 -> 主页 -> ScreenOne -> ScreenTwo -> 主页 -> ScreenOne -> 设置(单击注销的位置)-> 登录,当您按下返回时,它会返回设置,如果再次按下它会转到 ScreenOne等等 。
当我单击注销时,这就是我导航到登录的方式:
navController.navigate(NavigationItem.Login.route) {
popUpTo(NavigationItem.Login.route) {
inclusive = true
}
}
笔记:已经尝试将 Navigation.Home.route 作为 popUpTo 上的参数。
我不知道是否相关,但这就是我在 Home -> ScreenOne -> ScreenTwo -> Home -> ScreenOne 之间导航的方式:
navController.navigate(item.route) {
navController.graph.startDestinationRoute?.let { route ->
popUpTo(route = route) {
saveState = true
}
}
launchSingleTop = true
restoreState = true
}
有谁知道我如何清除后台堆栈或保证,在第二种行为中,当我在注销后进入登录屏幕并按“返回”时,应用程序进入第二个计划?
【问题讨论】:
标签: android-jetpack-compose android-jetpack-navigation