Я нажимаю фрагмент на стеке фрагментов, используя следующий код:
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();
Таким образом, когда стек фрагмента выталкивается, например. нажатием кнопки "Назад" воспроизводится анимация поп-фрагмента. Тем не менее, есть ситуации, в которых я хотел бы поместить фрагмент backstack, не показывая эту анимацию, например. потому что я только что вернулся из другого действия и хочу отобразить предыдущий фрагмент сразу, без анимации.
Пример навигации может выглядеть следующим образом:
- Пользователь находится на стартовом экране с корневым фрагментом
- Он выбирает элемент корневого фрагмента, который затем отображает новый фрагмент для отображения деталей этого элемента. Он делает это с помощью транзакции фрагмента, которая устанавливает анимацию как для нажатия, так и для поп-флага (поэтому, когда пользователь нажимает кнопку "Назад", переход анимируется)
- Из этого фрагмента начинается действие, которое (по какой-либо причине) удаляет только что показанный объект
- Когда это действие завершается, я хотел бы вернуться к корневому фрагменту, не показывая "поп-анимацию" фрагмента детали
Есть ли способ вытащить фрагмент фрагмента без воспроизведения указанной поп-анимации?