所以我有一个带有片段的活动,片段有一个导航抽屉和页面的内容。当我打开抽屉并单击一个项目时,片段将替换为一个新片段。当我按下后退按钮时,我在片段管理器上调用popBackStack,它返回到第一个片段但导航抽屉是打开的。
有几点需要注意:当按下抽屉中的项目时,我会在抽屉布局上调用closeDrawers,并在更换片段时关闭抽屉。如果我按下操作栏中的UP按钮,我可以用新的主片段替换片段容器,但我更喜欢能够将片段从堆栈中弹出。
当我回到主片段时,为什么抽屉会张开?
在抽屉项目的点击侦听器中:
case 4:
drawerLayout.closeDrawers();
Fragment aboutFragment = new AboutFragment();
fragmentTransaction.replace(R.id.fragment_container, aboutFragment, "AboutFragment");
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
break;
这是操作栏中的向上箭头,这有效,但很黑:
case android.R.id.home:
getFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, new MainActivityFragment())
.commit();
break;
答案 0 :(得分:0)
在你的firt片段的onCreateView中,只需关闭抽屉 mDrawerLayout.closeDrawer(Gravity.LEFT);
答案 1 :(得分:0)
替换
drawerLayout.closeDrawers();
与
drawerLayout.closeDrawer();