Jetpack导航:弹出非顶部入口



假设我有三个页面。HomeDetailWatch,并考虑我有下面的导航堆栈。

Home -> Detail -> Watch -> Detail

现在我想打开一个新的Watch页面,但现有的页面应该从当前堆栈中删除。这意味着,生成的堆栈应该是

Home -> Detail -> Detail -> Watch

是否可以使用Jetpack导航实现?

假设您在谈论"Jetpack Navigation";然后您可以添加导航选项。

例如,您可以确保launchSingleTop的后堆栈上只有一份Watch页面的副本。它可能不会像您上面描述的那样操作后堆栈,因为从后堆栈中删除Watch似乎有点不寻常。

但是,使用这些额外的导航选项,您可能会获得所需的行为。

// Pop everything up to the "home" destination off the back stack before
// navigating to the "friendslist" destination
navController.navigate("friendslist") {
popUpTo("home")
}
// Pop everything up to and including the "home" destination off
// the back stack before navigating to the "friendslist" destination
navController.navigate("friendslist") {
popUpTo("home") { inclusive = true }
}
// Navigate to the "search” destination only if we’re not already on
// the "search" destination, avoiding multiple copies on the top of the
// back stack
navController.navigate("search") {
launchSingleTop = true
}

相关内容

  • 没有找到相关文章

最新更新