Android 如何阻止片段一直弹出到根片段?[导航组件]

Android 如何阻止片段一直弹出到根片段?[导航组件],android,android-fragments,navigation-drawer,jitpack,Android,Android Fragments,Navigation Drawer,Jitpack,我有一个由导航组件组成的侧抽屉,当我导航到一个片段中包含的片段并按下back键时,它会将整个堆栈弹出到根片段。让我解释一下 我从根片段导航到片段A(这两个片段都在导航XML文件中定义),然后从片段A导航到片段B 根片段-->片段A-->片段B 我已经尝试过定义menuCategory:除了导航项之外,使用action标记并在所述标记中定义“popupto”和“destination”参数,但仍然没有结果 我们将不胜感激 navController = Navigation.findNavCo

我有一个由导航组件组成的侧抽屉,当我导航到一个片段中包含的片段并按下back键时,它会将整个堆栈弹出到根片段。让我解释一下

我从根片段导航到片段A(这两个片段都在导航XML文件中定义),然后从片段A导航到片段B

根片段-->片段A-->片段B

我已经尝试过定义menuCategory:除了导航项之外,使用action标记并在所述标记中定义“popupto”和“destination”参数,但仍然没有结果

我们将不胜感激

  navController = Navigation.findNavController(this, R.id.nav_host_fragment);

    if(prefsUtils.getFromPrefs(Keys.roleName).equals("PA") ||prefsUtils.getFromPrefs(Keys.roleName).equals("RSM"))
    {
        navController.setGraph(R.navigation.mobile_navigation);
        mAppBarConfiguration = new AppBarConfiguration.Builder(
                R.id.nav_dashboard,R.id.nav_createOrder)
                .setDrawerLayout(binding.drawerLayout)
                .build();
    }

    else if (prefsUtils.getFromPrefs(Keys.roleName).equals("TP"))
    {
        navController.setGraph(R.navigation.mobile_navigation_tp);
        binding.navView.getMenu().clear();

        binding.navView.inflateMenu(R.menu.activity_main_drawer_tp);
        mAppBarConfiguration = new AppBarConfiguration.Builder(
                R.id.nav_dashboardTP)
                .setDrawerLayout(binding.drawerLayout)
                .build();
    }

    NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
    NavigationUI.setupWithNavController(binding.navView, navController);

 @Override
public void onBackPressed() {
    super.onBackPressed();
    navController.navigateUp();
}
使用


为了避免弹出整个backbackback。

您可以使用

 public void onBackPressed(){


 super.onBackPressed();
startActivity(new Intent(getApplicationContext(), FragmentA.class));   


}
这里startActivity()函数用于写入片段A,以便在片段B中单击“后退”按钮时,它将返回到片段A。
在Fragment B java类中编写上述所有代码。

发布导航图和一些代码!我已经添加了导航UI和OnBackpress的代码我在OnBackpress中使用了这个conde,但它仍然会弹出到根片段。我有大约10个菜单项,然后在这些片段中有大约10个片段。我不认为为这么多的片段添加条件是有效的。
 public void onBackPressed(){


 super.onBackPressed();
startActivity(new Intent(getApplicationContext(), FragmentA.class));   


}