Проблема с графиком навигации при добавлении активности - PullRequest
0 голосов
/ 13 декабря 2018

Я использую компонент 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 перекрывают друг друга. Как я мог решить эту проблему?я думаю, что backstack не работает нормально, если я добавлю Activity в граф навигации.

...