Я использую FragmentTransition
вместе с SharedElementTransition
между 2 Fragment
s.
Фактический переход элемента и переход Fragment
состоят из набора различных переходов для создания желаемой анимации. У меня нет проблем с анимацией, но для ясности я включил все используемые переходы:
val moveElementTransition: Transition by lazy { TransitionInflater.from(context).inflateTransition(android.R.transition.move) }
val noElementTransition:Transition by lazy { TransitionSet().addTransition(TransitionInflater.from(context).inflateTransition(android.R.transition.no_transition)) }
val exitTransition: Transition by lazy { TransitionSet().addTransition(TransitionInflater.from(context).inflateTransition(android.R.transition.slide_left)).setDuration(200L).setStartDelay(0L) }
val reenterTransition: Transition by lazy { TransitionSet().addTransition(TransitionInflater.from(context).inflateTransition(android.R.transition.slide_left)).setDuration(200L).setStartDelay(450L) }
val enterTransition: Transition by lazy { TransitionSet().addTransition(TransitionInflater.from(context).inflateTransition(android.R.transition.slide_bottom)).setDuration(200L).setStartDelay(400L) }
Проблема
Просто чтобы уточнить, все переходы «работают» при переходе от FragmentA
к FragmentB
и когда я выдвигаю задний стек и реверсирую анимацию.
Однако похоже, что все настройки альфа-канала в видах (включая CardView
углов и View
альфа-канала) неверны во время перехода. Результат явно уродлив, пока происходит переход, любая альфа отображается неправильно (скорее умноженный эффект, чем наложение). Похоже, что альфа-канал в представлениях неправильно поддерживается при переходах фрагментов?
Пример альфа-виньетки, которую я использую в некоторых представлениях:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="0"
android:endColor="@android:color/transparent"
android:startColor="@color/colorWindowBackgroundTint"
android:type="linear"/>
</shape>
Скриншот того, как обычно виньетка выглядит слева, и как она выглядит во время анимации перехода фрагмента:
Кто-нибудь еще сталкивался с этой проблемой, и если да, то можно ли их исправить?
ИЗМЕНИТЬ:
По запросу я создал небольшое тестовое приложение, которое воспроизводит это поведение (проверено на эмуляторе API 23/24/25) - ссылка: https://github.com/TreeFrogApps/FragmentTransitionTest