Я помещаю фрагмент в стек фрагментов, используя следующий код:
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_right,
R.anim.slide_in_left, R.anim.slide_out_left);
fragmentTransaction.replace(getId(), newFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Таким образом, когда стек фрагментов извлекается, например, нажатием кнопки назад, воспроизводится анимация всплывающего фрагмента.Однако есть ситуации, в которых я хотел бы вставить фрагмент обратно в стэк, не показывая эту анимацию, например, потому что я только что вернулся из другого действия и хочу отобразить предыдущий фрагмент сразу, без анимации.
Пример навигацииможет выглядеть так:
- Пользователь находится на начальном экране с корневым фрагментом
- Он выбирает элемент в корневом фрагменте, который затем отображает новый фрагмент, чтобы показать детали этоговещь.Для этого используется фрагментная транзакция, которая устанавливает анимацию для случая push и pop (поэтому, когда пользователь нажимает кнопку возврата, переход анимируется)
- С этого фрагмента он запускает действие, которое (для любогопричина) удаляет элемент, который был только что показан
- Когда это действие заканчивается, я хотел бы вернуться к корневому фрагменту, не показывая «всплывающую анимацию» «фрагмента детали»
Есть ли способ вставить фрагмент обратно без воспроизведения указанной поп-анимации?