最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Compose

运维笔记admin7浏览0评论

Compose

Compose

ikn*_*now 28

在 Jetpack Compose1.0.0-rc01中导航并从后台堆栈中删除以前的 Composable 您可以使用:

navController.navigate(Screens.Login.name) { popUpTo(Screens.Splash.name) { inclusive = true }}

上面的代码将从Splash屏幕导航到Login并弹出所有内容,包括Splash屏幕。

导航到可组合 - 文档

凉爽的。感谢。我会接受你的,因为我以前的自我回答现在已经过时了。 (2认同)

Mah*_*alv 13

对于v1.0.0-alpha09(和 1.0 稳定版)

使用popUpTo(0)您可以在导航到下一个目的地之前清除堆栈。所以:

navHostController.navigate(Route.login.id) { // popUpTo = 0 // DEPRECATED popUpTo(0)}

popUpto 已弃用 (2认同) @Rulogarcillan 但不是`popUpTo(0)` (2认同)

bbo*_*eck 7

对于不需要知道当前路由的一致可重用函数,请使用此 NavOptionsBuilder 扩展函数

fun NavOptionsBuilder.popUpToTop(navController: NavController) { popUpTo(navController.currentBackStackEntry?.destination?.route ?: return) { inclusive = true }}

^ 与其他答案类似,它 popUpTo 当前路由,但不需要命名特定的当前路由,而是从 backstack 条目中获取它。

现在你可以像这样使用它:

navController.navigate(ScreenRoutes.Login.route) { popUpToTop(navController) }

^ 该示例导航到 Login,并且应该清除它之前的整个 backstack。

Compose

发布评论

评论列表(0)

  1. 暂无评论