弹出片段后台后导航抽屉打开

时间:2016-06-11 17:18:11

标签: android android-layout android-fragments navigation-drawer drawerlayout

所以我有一个带有片段的活动,片段有一个导航抽屉和页面的内容。当我打开抽屉并单击一个项目时,片段将替换为一个新片段。当我按下后退按钮时,我在片段管理器上调用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;

2 个答案:

答案 0 :(得分:0)

在你的firt片段的onCreateView中,只需关闭抽屉 mDrawerLayout.closeDrawer(Gravity.LEFT);

答案 1 :(得分:0)

替换

drawerLayout.closeDrawers();

drawerLayout.closeDrawer();