使用底部导航和导航组件单击按钮时切换选项卡

Switch tab on button click with Bottom Navigation and Navigation component

我有一个非常简单的应用程序,它由三个片段和一个底部导航栏组成,是使用 Android Studio 中的“新建项目 -> 底部导航 Activity”创建的。第一个 Fragment 包含一个按钮,它应该将我带到第二个 Fragment,就像点击底部导航栏的中间按钮一样。

是否有“标准”方法来做到这一点?

我试过:

在此post, someone asks the exact same question, but it is marked as a 。我找不到答案,尤其是关于导航组件。

点击 Button 应该与用户点击底部导航中的相应项目具有相同的效果。所以你需要在 BottomNavigationView 上调用 setSelectedItemId()。这只能在显示 BottomNavigationView.

Activity 中完成

一个选择是引入 shared ViewModel

  • a LiveDataActivity
  • 观察
  • 一个函数 onButtonClicked() 将由 ButtonOnClickListener 调用,它将更新 LiveData

一旦 LiveData 观察者开火,您的 Activity 就可以调用

 binding.navView.selectedItemId = R.id.navigation_dashboard

请注意,要传递有关此类事件的信息,应选择某种数据类型,这些数据类型可以在使用后失效。例如参见 [​​=26=]

将这段代码从你想去的地方粘贴到第二个片段

Fragment fragment = new DashboardFragment();
            FragmentManager fm = getActivity().getSupportFragmentManager();
            fm.beginTransaction().replace(R.id.frame_layout, fragment).commit();

更多信息click here