0

Итак, у меня есть активность с фрагментом, в нем есть ящик навигации и содержимое страницы. Когда я открываю ящик и нажимаю на элемент, фрагмент заменяется новым фрагментом. Когда я нажимаю кнопку «Назад», я вызываю popBackStack в диспетчере фрагментов, и он возвращается к первому фрагменту, но ящик навигации открыт.Открывающий ящик навигации после того, как выскочил фрагмент backstack

Пара примечаний: при нажатии элемента в ящике я вызываю closeDrawers на макет ящика, и ящик закрывается при замене фрагмента. Если я нажму кнопку UP на панели действий, я могу заменить контейнер фрагмента новым основным фрагментом, но я предпочел бы, чтобы он мог вырезать фрагмент из стека.

Почему ящик открыт, когда я возвращаюсь к основному фрагменту?

В храповом слушателе для элементов ящика:

case 4: 
     drawerLayout.closeDrawers(); 
     Fragment aboutFragment = new AboutFragment(); 
     fragmentTransaction.replace(R.id.fragment_container, aboutFragment, "AboutFragment"); 
     fragmentTransaction.addToBackStack(null); 
     fragmentTransaction.commit(); 
     break; 

Это стрелку вверх в панели действий, это работает, но Hacky:

case android.R.id.home: 
    getFragmentManager() 
      .beginTransaction() 
      .replace(R.id.fragment_container, new MainActivityFragment()) 
      .commit(); 
    break; 

ответ

0

В onCreateView вашего firt фрагмента, просто закройте ящик mDrawerLayout.closeDrawer (Gravity.LEFT);

+0

Я пытался что, к сожалению. Он по-прежнему показывает, что он открыт – Stampede10343

+0

Вы указали его как последнее заявление своего навигационного ящика? –

+0

Или еще одна вещь, которую вы можете сделать, это закрыть навигационный ящик после того, как вы поместили() в код кнопки «Назад» –