Jetpack Compose:深度链接后底栏导航没有响应

Bar*_*ine 5 deep-linking android-architecture-navigation android-jetpack-compose

我在新的 Jetpack Compose 应用程序中设置了一个包含 2 个目的地的底部栏。我尝试遵循谷歌的示例。

例如,它看起来像这样:

@Composable
fun MyBottomBar(navController: NavHostController) {
    val items = listOf(
        BottomNavigationScreen.ScreenA,
        BottomNavigationScreen.ScreenB
    )
    val navBackStackEntry by navController.currentBackStackEntryAsState()
    val currentDestination = navBackStackEntry?.destination

    BottomNavigation {
        items.forEach { screen ->
            BottomNavigationItem(
                onClick = {
                    navController.navigate(screen.route) {
                        popUpTo(navController.graph.findStartDestination().id) {
                            saveState = true
                        }

                        launchSingleTop = true
                        restoreState = true

                    }
                },
                selected = currentDestination?.hierarchy?.any { it.route == screen.route } == true,
                icon = { Icon(imageVector = screen.icon, contentDescription = null) },
                label = { Text(stringResource(screen.label)) }
            )
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这一切工作正常,我能够在两个目的地之间导航。然而,我也有一个深层链接ScreenB。一旦调用此功能,按下ScreenA按钮似乎不会执行任何操作(如果我添加日志记录,我可以看到 currentDestination 被重复设置为ScreenB),但按回键将返回到 的 startDestination ScreenA

我目前的解决方法是restoreState = true从示例代码中删除该行。

我怀疑有关深层链接的某些内容正在持续存在,尽管它尝试转到 ScreenA,但导航组件表示它有一个指向 ScreenB 的深层链接,因此它只是转到那里。我尝试重置活动意图,使其在意图中没有标志和数据,我什至尝试更改意图操作类型,但都无济于事。

我正在使用 Compose 1.0.0-rc02 和 Compose Navigation 2.4.0-alpha04。

我做错了什么还是这是一个错误?

Bar*_*ine 0

看起来它终于在 2.4.0-beta02 版本中修复了;所以这毕竟是一个错误。

我能够将 saveState 和 RestoreState 命令添加回我的 BottomBar(根据文档),并且按照深层链接,我现在仍然能够单击初始目的地。