微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Jetpack Compose:深度链接后底部栏导航没有响应

我在我的新 Jetpack Compose 应用程序中设置了一个底部栏,其中包含 2 个目的地。我已尝试按照 Google 提供的示例进行操作。

例如它看起来像这样:

@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)) }
            )
        }
    }
}

这一切正常,我可以在两个目的地之间导航。不过,我也有一个指向 ScreenB 的深层链接。一旦被调用,按 ScreenA 按钮似乎什么都不做(如果我添加日志记录,我可以看到 currentDestination 被重复设置为 ScreenB)但按回返回到 {{1} 的 startDestination }}。

我目前的解决方法是从示例代码删除 ScreenA 行。

我的怀疑是关于深层链接的某些东西被持久化了,尽管它试图转到 ScreenA,但导航组件说它有一个指向 ScreenB 的深层链接,所以它只是去那里。我尝试重置活动意图,使其在意图中没有标志和数据,我什至尝试更改意图操作类型,但都无济于事。

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。