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