Удалить один конкретный фрагмент из бэкстека Android

Для приложения на планшете Android я использую 2 фрагмента. Один на левой стороне экрана и один на правой стороне. Если вы нажмете кнопку в правом фрагменте, другой фрагмент будет добавлен вверху правого фрагмента. Этот фрагмент добавлен в backstack.

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.add(R.id.fragmentlayout, fragment2);
ft.addToBackStack("Fragment2");
ft.commit();

Backstack теперь:

[фрагмент 1] -> [фрагмент 2]

На левой стороне также есть кнопка, которая открывает фрагмент поверх левого фрагмента (такой же, как фрагмент2) и добавляет его в backstack. Бэкстек сейчас

[фрагмент 1] -> [фрагмент 2] -> [фрагмент 3]

На фрагменте 2 есть кнопка, чтобы закрыть этот фрагмент.

getFragmentManager().popBackStack("Fragment2", FragmentManager.POP_BACK_STACK_INCLUSIVE);

Проблема в том, что когда я хочу закрыть только [фрагмент 2], [фрагмент 3] также будет уничтожен. Я могу удалить фрагмент вручную, позвонив

FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.remove(fragment2).commit();

Но бэкстек останется

[фрагмент 1] -> [(призрачный) фрагмент 2] -> [фрагмент 3]

Так что вам нужно нажать еще раз, чтобы закрыть приложение.

Есть ли способ удалить только [фрагмент 2] из backstack и оставить [фрагмент 3] на экране?

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

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