У меня есть 3 фрагмента, и я перемещаюсь по нижнему меню (3 элемента), допустим, я перемещаюсь следующим образом:
A -> B -> C -> B -> C
когда я нажму кнопку назад, вот что произойдет
A ‹- B ‹- C ‹- B ‹- C
и я хочу это
А ‹- B ‹- C
это означает, что если добавить фрагмент, который уже добавлен, старый нужно удалить, точнее удалить транзакцию из заднего стека
этот код не будет работать, потому что мы добавляем здесь новую транзакцию:
FragmentTransaction transaction = mContext.beginTransaction();
Fragment lastFragment = mContext.findFragmentByTag(mFragmentTag);
if (lastFragment != null) {
transaction.remove(lastFragment);
transaction.commit();
}
Кстати, некоторые разработчики могут ошибаться, но в заднем стеке хранятся транзакции, а НЕ фрагменты.