У меня есть активность, в которой я переключаю фрагменты, используя следующий метод:
public void setCurrentFragment(Fragment fragment) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.slide_left_right_in, R.anim.slide_left_right_out, R.anim.slide_right_left_in, R.anim.slide_right_left_out);
transaction.replace(R.id.contentFrameLayout, fragment, Integer.toString(fragmentId++));
transaction.addToBackStack(Integer.toString(fragmentId));
transaction.commit();
}
Мой стек навигации выглядит следующим образом:
N-2 → N-1 → N
Когда определенный фрагмент N "открыт", я хочу, чтобы предыдущий (N-1) был удален из задней части, поэтому, когда я нажимаю "назад", я хочу восстановить фрагмент N-2.
Когда я вызываю FragmentManager.popBackStack(..) в N фрагменте, он удаляет фрагменты N и N-1.
Я попытался вызвать popBackStack (..) в фрагменте N-1 прямо перед переключением на N фрагмент. Но в этом случае N-2-фрагмент возобновляется и только после отображения N-фрагмента.
Мой вопрос: есть ли способ удалить предыдущий фрагмент из backstack без появления текущего фрагмента?