Фрагмент Android: различные анимации для входа и возврата - PullRequest
1 голос
/ 05 мая 2019

Я показываю фрагмент, используя компонент архитектуры навигации androidx.

Фрагмент показан переходом общего элемента ArcMotion, но выходной переход должен быть простым скольжением вниз.

Я показываю фрагмент следующим образом:

findNavController().navigate(
    EntriesFragmentDirections.actionEntriesFragmentToNewBookEntryFragment(
        bookEntryType = mEntriesViewPager.currentItem,
        enterTransition = R.transition.new_book_entry_enter,
        exitTransition = R.transition.new_book_entry_exit
    ),
    FragmentNavigatorExtras(fabEntriesNewBookEntry to getString(R.string.transition_new_book_entry_fragment))
)

И я применяю переходы во фрагменте в onCreate:

sharedElementEnterTransition = TransitionInflater.from(requireContext()).inflateTransition(args.enterTransition)
exitTransition = TransitionInflater.from(requireContext()).inflateTransition(args.exitTransition)

Входной переход работает хорошо, ноВыходной переход по-прежнему является обратным входным переходом.

Входной переход xml:

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:duration="@android:integer/config_mediumAnimTime">

    <transition
        class="at.guger.moneybook.ui.transition.MorphTransform"
        app:endColor="?colorSurface"
        app:endCornerRadius="@dimen/zero"
        app:startColor="?colorSecondary"
        app:startCornerRadius="@dimen/fabRadius" />

</transitionSet>

Выходной переход xml:

<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_mediumAnimTime">

    <slide android:slideEdge="bottom" />

</transitionSet>
...