Как убрать предыдущий фрагмент из BackStack при возврате

Есть навигация из 4 фрагментов (A, B, C1, C2), у навигации может быть два варианта:

  1. A -> B -> C(1)

  2. A -> B -> C(2)

То есть из фрагмента "B", можно перейти на фрагмент "C(1)" или "C(2)" (зависит от внутренней логики)

Требуется, при нажатии кнопки "Назад", реализовать логику:

1 вариант навигации: C(1) -> B -> A (тут все ок, стандартная логика навигации)

2 вариант навигации: C(2) -> A (а вот тут нужно как-то миновать фрагмент B)

Подскажите, как можно реализовать такую логику?

Что уже попробовал

Вариант 1: popBackStack() перед открытие фрагмента C2 из фрагмента B. Не подходит, когда отрабатывает код, на секунду видно фрагмент A

Вариант 2: При создании транзакции фрагмента B из фрагмента А, не добавлять его в бэк стэк. Не подходит, для 1 варианта навигации фрагмент должен быть в стэке.


Ответы (0 шт):