我有一个大约有10个片段的Single Activity应用程序。屏幕上只能同时显示一个片段。活动包含DrawerLayout
和NavigationView
。
好吧,所以我想创建一个东西,当任何片段都可以使用自己的动作导航到一个抛出NavigationView
时。我将此片段称为Main
。所以我想使用action1从Fragment1导航到Main,使用action2从Fragment2导航到Main,等等。
据我了解,我有两种方法:
Hardcore,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;
我使用动作为片段过渡添加动画,但我不想丢失它。如何使我的导航正确?
答案 0 :(得分:0)
我通过全局操作来完成它,非常适合此任务。