无法使用导航和 Jetpack 组合弹出起始目的地
Can't pop starting destination using navigation and jetpack compose
-
android
-
android-layout
-
android-jetpack-navigation
-
android-jetpack-compose
-
jetpack-compose-navigation
我正在使用最新版本的导航并在 Android 上撰写,但我遇到了一个错误,我无法弹出导航的起始目的地。
问题是,如果我有 3 个目的地(A、B、C)并从 A-> B -> C 出发,我无法从后台弹出 A,但是当我调用 popUpTo(B)
[ 时弹出 B =14=], 导致后退按钮回到 A.
我的代码:
NavHost
setContent {
val navController = rememberNavController()
NavHost(
navController = navController,
startDestination = "route_to_a"
) {
composable("route_to_a") {
LoginScreen(navController)
}
composable("route_to_b") {
RegisterScreen(navController)
}
composable("route_to_c") {
HomeScreen(navController = navController)
}
}
}
导航
- A 到 B
Button(onClick = { navController.navigate("route_to_b")}) {}
- B 到 C
Button(onClick = {
navController.navigate("route_to_c") {
popUpTo("route_to_b") {
inclusive = true
}
}
}) {}
我想创建一个流程,其中 A 和 B 在进入 C 后都不在后台。但是由于某些原因我无法从后台删除 A...我该怎么做?
替换,
popUpTo("route_to_b") {
inclusive = true
}
有了这个,
popUpTo("route_to_a") {
inclusive = true
}
来自 Docs,
// Pop everything up to and including the "home" destination off
// the back stack before navigating to the "friends" destination
navController.navigate("friends") {
popUpTo("home") { inclusive = true }
}
android
android-layout
android-jetpack-navigation
android-jetpack-compose
jetpack-compose-navigation
我正在使用最新版本的导航并在 Android 上撰写,但我遇到了一个错误,我无法弹出导航的起始目的地。
问题是,如果我有 3 个目的地(A、B、C)并从 A-> B -> C 出发,我无法从后台弹出 A,但是当我调用 popUpTo(B)
[ 时弹出 B =14=], 导致后退按钮回到 A.
我的代码:
NavHost
setContent {
val navController = rememberNavController()
NavHost(
navController = navController,
startDestination = "route_to_a"
) {
composable("route_to_a") {
LoginScreen(navController)
}
composable("route_to_b") {
RegisterScreen(navController)
}
composable("route_to_c") {
HomeScreen(navController = navController)
}
}
}
导航
- A 到 B
Button(onClick = { navController.navigate("route_to_b")}) {}
- B 到 C
Button(onClick = {
navController.navigate("route_to_c") {
popUpTo("route_to_b") {
inclusive = true
}
}
}) {}
我想创建一个流程,其中 A 和 B 在进入 C 后都不在后台。但是由于某些原因我无法从后台删除 A...我该怎么做?
替换,
popUpTo("route_to_b") {
inclusive = true
}
有了这个,
popUpTo("route_to_a") {
inclusive = true
}
来自 Docs,
// Pop everything up to and including the "home" destination off
// the back stack before navigating to the "friends" destination
navController.navigate("friends") {
popUpTo("home") { inclusive = true }
}