support-v4: 27.1.0 пользовательские анимации не работают должным образом

Анимация фрагментов не работает должным образом с support-v4:27.1.0

getSupportFragmentManager()
       .beginTransaction()
       .setCustomAnimations(ENTER_ANIM , LEAVE_ANIM)
       .replace(R.id.main_activity_fragment_place_holder, fragment)
       .addToBackStack(tag)
       .commitAllowingStateLoss();

вводить анимацию

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="500" />

оставьте анимацию

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="500" />

Ответ 1

Я просто попал в ту же проблему. Поддержка библиотеки 27.1.0, кажется, есть проблема с Anim переходов, которые используют свойство альфа.

Мое впечатление, что механизм перехода неправильно реализует "заливку", так что фрагмент alpha быстро отскакивает назад до 1 до удаления фрагмента. Это вызывает мигающий эффект, когда замещенный фрагмент ненадолго виден, а затем исчезает.

Я решил проблему переключиться на анимационные переходы.

Т.е. заменил мой /res/anim/fade_in.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="0"
    android:toAlpha="1"
    android:duration="500"
    />

с аналогичным /res/animator/fade_in.xml

<?xml version="1.0" encoding="utf-8"?>
<objectAnimator
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:propertyName="alpha"
    android:valueFrom="0"
    android:valueTo="1"
    android:duration="500"
    />

Я сделал то же самое для перехода fade_out.

Ответ 2

Мигающий эффект был зафиксирован в последней версии библиотеки поддержки 27.1.1. (см. вопрос 74051124)

Ответ 3

У меня такая же проблема после обновления библиотеки поддержки с 27.0.2 до 27.1.0. Вместо плавного размытия фрагменты несколько раз мигают.

Кажется, что все аниматоры работают, как ожидалось, кроме alpha аниматоров.

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

Новая анимация ввода (которую я назвал nothing.xml):

<?xml version="1.0" encoding="utf-8"?>
<set/>