添加活动时出现导航图问题

时间:2018-12-13 07:17:39

标签: android uinavigationcontroller android-jetpack

我正在将Navigation Android组件与导航抽屉一起使用,它可以很好地运行我们的代码:

 private void setupNavMenu() {
        NavHeaderMainBinding navHeaderMainBinding = DataBindingUtil.inflate(getLayoutInflater(),
                R.layout.nav_header_main, mActivityMainBinding.navigationView, false);
        mActivityMainBinding.navigationView.addHeaderView(navHeaderMainBinding.getRoot());
        navHeaderMainBinding.setViewModel(mMainViewModel);
        addNavigationItem();
        NavigationUI.setupActionBarWithNavController(this, navController, mActivityMainBinding.drawerView);
        mNavigationView.setNavigationItemSelectedListener(
                item -> {
                    mDrawer.closeDrawer(GravityCompat.START);
                    return true;
                });
        NavigationUI.setupWithNavController(mNavigationView, navController);
    }

这是我们的导航项:

   private void addNavigationItem() {
        final Menu menu = mNavigationView.getMenu();

        menu.add(R.id.group, R.id.test1Fragment, Menu.NONE, "test1");
        menu.add(R.id.group, R.id.test2Fragment Menu.NONE, "test2");
        menu.add(R.id.group, R.id.testActivity3 Menu.NONE, "test3");
    }

navigation_xml

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/home_fragment"
    app:startDestination="@id/test1Fragment">

    <fragment
        android:id="@+id/test1Fragment"
        android:name="com.test.Test1"
        android:label="FragmentOne">
        <action
            android:id="@+id/action_test1"
            app:destination="@id/test2Fragment" />
    </fragment>

    <fragment
        android:id="@+id/test2Fragment"
        android:name="com.test.Test2"
        android:label="FragmentThree" >
        <action
            android:id="@+id/action_test2"
          />
    </fragment>


    <activity
        android:id="@+id/testActivity3"
        android:name="com.test.TestActivity"
        android:label="Act"
        tools:layout="@layout/activity_test"
        ></activity>

</navigation>

一切正常。现在的问题是,当我单击导航抽屉中的第二个标签并再次从第二个片段中打开抽屉并单击第三个选项卡Activity时。然后在背面按堆栈无法正常工作,片段test1和test2相互重叠。我该如何解决此问题?我认为如果在导航图中添加Activity,则Backstack无法正常工作。

0 个答案:

没有答案