我正在使用 Jetpack Compose ui 版本 1.3.0-beta08
和导航 compose 版本 2.4.0-alpha02
以及具有所有新架构组件的工作 Bloom 应用程序。登录成功后,我需要清除所有以前的撰写登录屏幕,但即使添加了 popUpTo("HomeScreen"){inclusive = true}
,当我从主屏幕单击返回时,我的登录屏幕从后台堆栈中删除,但登录欢迎屏幕未从后台堆栈中删除。我在撰写导航中有什么遗漏/错误吗?
composable(Screen.LoginScreen.route) {
LoginScreen {
Log.d("AppMainNavigation", "AppMainNavigation: ${navController.backQueue}")
navController.navigate(Screen.HomeBaseScreen.route){
popUpTo(Screen.LoginScreen.route){
inclusive = true
}
launchSingleTop = true
}
}
}
答案 0 :(得分:0)
将您的 jetpack compose 版本更新为最新发布的预览版本和所有其他依赖项。
当前喷气背包组合版本:1.0.0-rc02
还有你想弹出的屏幕只是使用这个
我的启动画面代码:
@Composable
fun Navigate(navController: NavController) {
produceState(initialValue = -1) {
delay(1500)
navController.popBackStack()
val route = if (Firebase.auth.currentUser == null) AppRouter.Intro.route else AppRouter.Home.route
navController.navigate(route)
}
}
所以在这里你可以使用下面这行来从 backstack 中删除屏幕
navController.popBackStack()