如何使用抽屉和导航元素通过操作创建正确的导航?
How to create correct navigation with actions, using drawer and Navigation element?
我有一个包含 ~ 10 个片段的单个 Activity 应用程序。同一时间只能有一个片段出现在屏幕上。 Activity 包含 DrawerLayout
和 NavigationView
。
好的,所以我想创建一个东西,当任何片段可以导航到一次抛出时 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;
我使用动作为片段过渡添加动画,我不想失去它。如何使我的导航正确?
我用全局动作完成了它,非常适合这个任务。
我有一个包含 ~ 10 个片段的单个 Activity 应用程序。同一时间只能有一个片段出现在屏幕上。 Activity 包含 DrawerLayout
和 NavigationView
。
好的,所以我想创建一个东西,当任何片段可以导航到一次抛出时 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;
我使用动作为片段过渡添加动画,我不想失去它。如何使我的导航正确?
我用全局动作完成了它,非常适合这个任务。