6

我正在使用 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
                    }
                }
            }

GitHub 链接: https ://github.com/rramprasad/BloomApp/blob/main/app/src/main/java/dev/ramprasad/bloom/MainActivity.kt

4

1 回答 1

2

将您的 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)
    }
 }

所以在这里你可以使用下面的行从后台删除屏幕

navController.popBackStack()
于 2021-07-27T01:14:32.463 回答