Выходящий фрагмент мгновенно исчезает во время анимированной транзакции - PullRequest
0 голосов
/ 04 июля 2019

Я видел много людей, описывающих, как это происходит с дочерними фрагментами ( например ), но я не использую дочерние фрагменты.Когда я добавляю анимации к транзакции, выходящий фрагмент мгновенно исчезает, а входящий фрагмент входит с ожидаемой входящей анимацией.Когда я нажимаю назад, происходит то же самое ... выходящий фрагмент мгновенно исчезает, и исходный фрагмент входит с соответствующей анимацией поп-ввода.

Что я сделал не так?

ЯДелая это в AppCompatActivity, который реализует PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, и мой макет для действия состоит исключительно из FrameLayout.

override fun onPreferenceStartFragment(caller: PreferenceFragmentCompat, pref: Preference): Boolean {
    val fragment = supportFragmentManager.fragmentFactory.instantiate(
            classLoader,
            pref.fragment)
    supportFragmentManager.beginTransaction()
            .setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right)
            .add(R.id.fragment_wrapper, fragment)
            .addToBackStack(null)
            .commit()
    return true
}

Все мои анимации - простые анимированные переводы с одинаковой продолжительностью, например:

<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator"
    android:fromXDelta="100%p" android:toXDelta="0"
    android:duration="@integer/fragment_transition_time"/>

Я использую androidx.preference:1.1.0-alpha05.

1 Ответ

0 голосов
/ 04 июля 2019

Используйте ObjectAnimator ( документы ) вместо TranslateAnimation.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...