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

或者您可以做的另一件事是在後退按鈕代碼中彈出()後關閉導航抽屜 –