JetpackComposeNavigation:以字符串形式获取当前目的地的路线

我正在使用 NavHost 和 NavHostController 在我的 Jetpack Compose 应用程序中导航。为了指定目的地,我使用基于字符串的路由:

NavHost(
    navController,
    startDestination = "FOO"
) {
    composable("FOO") {
        Foo()
    }
    composable("BAR") {
        Bar()
    }
}

我想检索当前路径作为一个字符串(FOOBAR使用)navControllernavController.currentDestination.id然而,我能找到的最接近的替代方法是返回一个数字 ID,而不是作为字符串的路线。

有没有办法检索这个值?

我正在使用 Jetpack Compose beta01 和 Compose Navigation alpha08。

回答

androidx.navigation:navigation-compose版本2.4.0-alpha01androidx.navigation.compose.KEY_ROUTE被替换为navBackStackEntry?.destination?.route.

KEY_ROUTE 参数已替换为 NavDestination 上的 route 属性,允许您直接调用 navBackStackEntry.destination.route。

2.4.0-alpha01 发行说明

示例代码:

val currentRoute = navController.currentBackStackEntry?.destination?.route

或者,如果您需要观察导航:

val navBackStackEntry by navController.currentBackStackEntryAsState()

when (val currentRoute = navBackStackEntry?.destination?.route) {
    // do something with currentRoute
}


以上是JetpackComposeNavigation:以字符串形式获取当前目的地的路线的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>