【问题标题】:navigation menu item not highlighted on switch of fragment1 to fragment2 with button click in fragment1在片段1中单击按钮将片段1切换到片段2时导航菜单项未突出显示
【发布时间】:2019-06-17 19:05:46
【问题描述】:

我的应用中有两个片段,即 HomeFragment 和 FeedbackFragment。除了在选项卡按钮上切换片段外,我还需要在片段内的按钮单击时在片段之间切换。使用选项卡单击切换片段时,选项卡项会正确突出显示。但是当我从 fragment1 切换到其他 Fragment 时,标签项不会突出显示

下面是用于在按钮单击时切换片段的代码,它可以工作。

    FragmentTransaction fragmentTransaction =  getActivity().getSupportFragmentManager().beginTransaction();
    fragmentTransaction.replace(R.id.fragment, fragment);
    fragmentTransaction.addToBackStack(null);
    fragmentTransaction.commit();

但是FeedbackFragment的相应标签图标没有突出显示。目前 HomeFragment 的导航项即使在FeedbackFragment 被替换后仍然高亮显示。如何突出显示反馈片段的菜单项?

我尝试了以下方法,但没有任何效果:

BottomNavigationView bottomNavigationView = (BottomNavigationView)   findViewById(R.id.navigation);

View view = bottomNavigationView.findViewById(R.id.tab_calls);
view.performClick();

还有,

  MainActivity.mBottomBar.selectTabAtPosition(2);

没有任何效果。请帮忙。

【问题讨论】:

  • 看看这个link可能对你有帮助

标签: android bottomnavigationview


【解决方案1】:

尝试使用方法来选择一个标签,就像它被点击一样:

bottomNavigationView.setSelectedItemId(R.id.tab_calls)

【讨论】:

  • 是的,我确实尝试了所有这些,但没有用 :( 给定的示例是在单击选项卡项时突出显示选项卡项图标。但在我的情况下,我想突出显示底部导航视图项在从另一个片段单击按钮时。当我单击选项卡项以在片段之间切换时,项目的突出显示效果非常好。但是我需要从片段中的本地按钮打开片段。在这种情况下,我无法从我的片段访问 MainActivity 中可用的 bottomNavigationView。
  • 您找到解决方案了吗?
【解决方案2】:

我现在所做的是在每个片段的 onResume 中尝试取消突出显示所有其他选项卡栏并再次突出显示当前选项卡栏。我从每个片段访问 bottomNavigationMenu 并执行此操作。不确定这是否是处理它的正确方法,但它至少有效。

【讨论】:

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