【问题标题】:NavigationComponent with BottomNavigationView item selectionNavigationComponent 与 BottomNavigationView 项目选择
【发布时间】:2020-05-19 08:55:24
【问题描述】:

我正在将 NavigationComponent 与 BottomNavigationView 一起使用。

当我使用这样的导航 (A->B->B1) 时,底部导航会自动将他选择的项目从 A 更改为 B。 我正在使用默认方法进行导航。

findNavController().navigate(R.id.action_A_to_B) 

然后在片段 B 中我再次使用

findNavController().navigate(R.id.action_B_to_B1)

只有这样我才能得到想要的结果。

当我尝试使用这样的导航 (A->B1) 时,我的底部导航不会将他的选择从 A 更改为 B。

findNavController().navigate(R.id.action_A_to_B1)

【问题讨论】:

  • 当您以编程方式导航到某个项目时,您必须通过设置其selectedItemId 来让栏知道。 bar.selectedItemId = <the id of your selected menu item>
  • @MartinMarconcini 我的 Activity 包含 BottomNavigationView。我从 Fragment 进行导航。
  • 然后将更新栏的责任委托给相应的实体(您的活动)。如果你的片段不拥有它,为什么它会尝试改变它?
  • @MartinMarconcini 我这样做是因为我的片段内的导航按钮。我应该为活动内部导航创建公共方法然后调用他吗?
  • 我不明白,谁膨胀和设定了标准?在任何情况下,您都应该阅读 how to communicate between activities and fragments 文档(或者,如果您更喜欢冒险,请使用更新的想法:共享的 ViewModel

标签: java android kotlin bottomnavigationview android-jetpack-navigation


【解决方案1】:

导航时,您可以通过以下语句以编程方式更改选择:

bottomNavigation.selectedItemId=R.id.itemFragmentB

【讨论】:

    猜你喜欢
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 2017-03-05
    相关资源
    最近更新 更多