Android - кнопка Back и фрагмент backstack не работают

m разрабатывает простое приложение на основе фрагментов с отдельной FragmentActivity. Каждыйэкран» приложения содержится во фрагменте, и все фрагменты добавляются в макет контейнера при запуске приложения.

// Set up fragments in Main Activity
fragMan = getFragmentManager();
FragmentTransaction ft = fragMan.beginTransaction();
ft.add(R.id.fragment_container, settingsFragment);
ft.add(R.id.fragment_container, mapFragment);
ft.add(R.id.fragment_container, tracksFragment);
ft.add(R.id.fragment_container, waypointsFragment);
ft.commit();

Переходы осуществляются путем скрытия видимого в данный момент фрагмента, а затем показа соответствующего фрагмента.

ft = fragMan.beginTransaction();
ft.show(mapFragment);
ft.addToBackStack(null);
ft.commit();

Это все работает нормально, но когда нажата кнопка «Назад», приложение закрывается, независимо от того, какой экран виден или какие предыдущие транзакции были добавлены в задний стек.

проверил, чтобы убедиться, что задний стек правильно накапливает записи, и перепробовал много разных вариантов методов перехода, таких как замена фрагментов, а не их скрытие / отображение, создание новых экземпляров фрагментов вместо сохранения их в переменных и т. д. Насколько я могу сказать, мой код соответствует всем учебникам и примерам, которые я могу найти, и у меня нетЯ даже не смог найти подобные вопросы / примеры подобных проблем, возможно потому, что стандартная реализацияпросто работает для других.

Я подозреваю, что это может быть проблема на уровне приложения, например, свойство в моем манифесте (который ямы тщательно изучили) или что-то присуще тому, как настроено мое приложение, что мешает правильной работе кнопки возврата. Я могу переопределить onBackPressed, чтобы обрабатывать переходы вручную, но это выглядит как очень уродливый обходной путь. Любые идеи относительно того, почему это не может вести себя, как ожидалось? Кстати, это на Nexus 7 работает Jelly Bean.

Ответы на вопрос(3)

Ваш ответ на вопрос