如何使用抽屉和导航元素通过操作创建正确的导航?

How to create correct navigation with actions, using drawer and Navigation element?

我有一个包含 ~ 10 个片段的单个 Activity 应用程序。同一时间只能有一个片段出现在屏幕上。 Activity 包含 DrawerLayoutNavigationView

好的,所以我想创建一个东西,当任何片段可以导航到一次抛出时 NavigationView,使用它们自己的动作。我称这个片段为Main。所以我想用 action1 从 Fragment1 导航到 Main,用 action2 从 Fragment2 导航到 Main,等等

据我了解,我有两种方法:

硬核,Activity 中的 setNavigationItemSelectedListener 和:

navigationView.setNavigationItemSelectedListener(item -> {
    switch (item.getItemId()) {
    ....
        case R.id.mainFragment:
            // a lot of code: define active fragment and using switch 
            // to making navigation with correct action
            break;

NavigationUI.setupActionBarWithNavController(this, controller, drawerLayout);
NavigationUI.setupWithNavController(navigationView, controller);

我认为第二种方式是唯一正确的,但是我失去了行动,好像我只是写:

case R.id.mainFragment:
    controller.navigate(R.id.mainFragmentName);
    break;

我使用动作为片段过渡添加动画,我不想失去它。如何使我的导航正确?

我用全局动作完成了它,非常适合这个任务。