0

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

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

+0

我已经试过了不幸取代

drawerLayout.closeDrawers(); 

。它仍然显示它是开放的 – Stampede10343

+0

您是否将它作为您的导航抽屉的最后一个声明? –

+0

或者您可以做的另一件事是在后退按钮代码中弹出()后关闭导航抽屉 –