Удалить фрагмент переключателя анимации - PullRequest
0 голосов
/ 04 апреля 2019

Я показываю дочерний фрагмент из фрагмента с этим кодом:

getChildFragmentManager().beginTransaction()
            .setCustomAnimations(android.R.animator.fade_in, R.animator.slide_out)
            .replace(R.id.container, detailFragment, "MAP_DETAIL")
            .commit();

Цель состоит в том, чтобы фрагмент выполнял анимацию выхода только при нажатии кнопки «Назад» в представлении.

В данный момент проблема в том, что он выполняется, когда я перехожу к другому виду через боковое меню.Это выглядит не очень хорошо, потому что дочерний фрагмент выталкивается до того, как основной фрагмент заменяется другим представлением.

Я хочу удалить анимацию, если заменяется родительский фрагмент, но сохранить ее, когда пользователь нажимаеткнопка «назад» (переход от детализации к основному фрагменту)

Я не могу найти в Интернете ничего относительно этого случая, но если есть ответ, я прошу прощения.

Любая помощь или руководство будут с благодарностью.

(обратите внимание, у меня есть видео для обмена, которое показывает анимацию выхода дочернего фрагмента, вызываемую при замене родительского фрагмента. Доступно при необходимости)

1 Ответ

1 голос
/ 04 апреля 2019

Для этого вы можете использовать метод setCustomAnimations, который принимает 4 аргумента:

  • ввод анимации
  • выход анимации
  • всплывающая анимация
  • анимация всплывающего выхода

Анимация " enter " отображается при появлении фрагмента, например, при совершении транзакции.

Анимация " exit " отображается, когда фрагмент заменяется другим фрагментом (т. Е. Транзакцией replace ()).

Анимация " pop enter " отображается, когда пользователь вставляет задний стек, и этот фрагмент возвращается на передний план (т. Е. Существует текущий фрагмент переднего плана, который уходит).

Анимация " pop exit " отображается, когда пользователь вставляет задний стек, и этот фрагмент покидает передний план.

Я считаю, что pop (enter / exit) анимации должны обеспечивать нужное вам поведение.

...