如何导航到 Android 上的根底部导航菜单项

问题描述 投票:0回答:1

我正在开发一个带有带有片段和导航图的导航组件的 Android 应用程序。 我的应用程序有一个带有菜单项的 BottomNavigationView,如“将目的地绑定到菜单项”中所述 从我的 HomeFragment 中,我可以通过从列表中选择某些元素来导航到 DetailFragment。 但是,当我从底部导航中选择另一个项目(例如 SecondFragment),然后选择 HomeFragment 项目时,我最终会再次进入 DetailView。

预期的行为是导航到(父)HomeFragment。我该怎么做?

我正在使用

androidx.navigation:navigation-fragment
androidx.navigation:navigation-ui
2.7.7.

我的代码如下所示:

// MainActivity
NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager()
                .findFragmentById(R.id.nav_host_fragment);
    
NavController navController = navHostFragment.getNavController();
    
bottomNavigationView = findViewById(R.id.bottom_navigation);
NavigationUI.setupWithNavController(bottomNavigationView, navController);
<!-- bottom_nav_menu.xml -->
<item
    android:id="@+id/homeFragment"
    android:icon="@drawable/ic_home_black_24dp"
    android:title="@string/label_program" />
<item
    android:id="@+id/secondFragment"
    android:icon="@drawable/ic_star_black_24dp"
    android:title="@string/label_second" />
...
<!-- activity_main.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    ...

    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        app:defaultNavHost="true"
        app:navGraph="@navigation/nav_graph" />

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:background="@color/colorWhite"
        app:menu="@menu/bottom_nav_menu" />

</LinearLayout>

在我的 HomeFragments 中

onItemClick
我通过以下方式导航:

bundle.putInt(ItemDetailFragment.ARG_PARAM1, mItems.get(position).item.getId());
navController.navigate(R.id.itemDetailFragment, bundle);

提前致谢!

android android-navigation android-navigationview
1个回答
0
投票

您需要使用 Fragments 为 BottomNavigationView Android 中的每个选项卡单独的返回堆栈

链接到 StackOverFlow 线程

© www.soinside.com 2019 - 2024. All rights reserved.