弹出屏幕(从"back stack")由可组合表示,以便在使用Jetpack Compose的导航组件时返回上一个屏幕?



我正在使用Jetpack的导航组件创建一个单独的活动应用程序。我创建了可组合的内容来表示不同的屏幕,并使用导航组件作为:

@InternalCoroutinesApi
@ExperimentalAnimationApi
@ExperimentalPagerApi
@RequiresApi(Build.VERSION_CODES.M)
@ExperimentalComposeUiApi
@Composable
fun ProgressNavigation(themeViewModel: ThemeViewModel?) {
val navController = rememberNavController()
NavHost(
navController = navController,
startDestination = Constants.SPLASH
) {composable(Constants.SPLASH) {
ScreenAnimation {
Splash(navController = navController)
}
}
composable(Constants.HIW) {
ScreenAnimation {
LogoPage(false, true, navController = navController) { HowItWorks( navController = navController) }
}
}
.
.
.
}

假设我有2个屏幕(可堆肥(";注册";以及";TnC";。用户在注册屏幕中输入注册详细信息,然后转到TnC屏幕。回到注册屏幕通过按下TnC屏幕中的按钮,之前在注册中输入的详细信息应保持不变。我该如何实现?如果屏幕是活动,我会使用onBackPressed从后台弹出屏幕。在我的情况下,我该如何做到这一点?

在SingUp compositable中将by remember替换为by rememberSaveable,然后如果您只是导航返回,则可以使用navController.popBackStack((,也可以使用popUpTo。如果您想导航回更远的位置。

示例:

navController.popBackStack()
//or
navController.navigate("TnC") {
popUpTo("SignUp")
}

相关内容

最新更新