Итак, у меня есть активность с фрагментом, в нем есть ящик навигации и содержимое страницы. Когда я открываю ящик и нажимаю на элемент, фрагмент заменяется новым фрагментом. Когда я нажимаю кнопку «Назад», я вызываю 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;
Я пытался что, к сожалению. Он по-прежнему показывает, что он открыт – Stampede10343
Вы указали его как последнее заявление своего навигационного ящика? –
Или еще одна вещь, которую вы можете сделать, это закрыть навигационный ящик после того, как вы поместили() в код кнопки «Назад» –