【问题标题】:Jetpack Navigation Component: Update Bottom Nav Bar on Deep LinksJetpack 导航组件:更新深层链接的底部导航栏
【发布时间】:2019-09-04 07:07:26
【问题描述】:

我正在一个示例应用程序中测试导航组件。我有一个带有三个片段的底部导航栏;比如说A,B和C。此外,C还有另一个与之相连的流程,就像这样; C -> C1 -> C2 -> C3 -> C. xml 定义中没有嵌套图。见图片。我还根据文档连接了底部栏。

当运行应用程序并在应用程序中移动时一切正常,底部栏会更新所选项目。

但是,当添加深层链接以打开 C2 时,应用会打开 C2,但底部栏中的 A 仍处于选中状态。我错过了什么?是否应该有任何动作连接 A、B 和 C?

【问题讨论】:

  • 你写过这样的东西吗:navController.addOnDestinationChangedListener{} ?
  • 不,我没有。根据文档,它应该默认监听更改。确实如此!直到我使用深层链接到达目的地..
  • 我发现这篇文章说有一些关于深度链接和反向行为的错误:android.jlelse.eu/…(参见“但有几个烂苹果”,第二条)
  • hmmmm,您是否已将 A、B 和 C 添加为顶级目的地?
  • 是的,顶级目的地。所以我想知道是否应该对他们采取任何全球行动来以某种方式连接一切?你怎么看?

标签: android android-jetpack android-jetpack-navigation


【解决方案1】:

我遇到了同样的问题,我可以通过嵌套导航图来解决它。在您的情况下,我会采用片段 C、C1、C2、C3 并将它们放在自己的导航图中嵌套在主图中。然后,Android 的 Navigation 组件会选择它,查看该图的 startDestination(我猜你会使用 C)并相应地更改底部导航。

这对我有用,并且是迄今为止唯一对我有用的解决方案。我相信通知(我使用的是NavDeepLinkBuilder)和导航组件之间的集成仍然是非常新的,因此缺少许多功能和选项。

【讨论】:

    猜你喜欢
    • 2020-07-13
    • 2021-12-15
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2022-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多