Циркулярное шоу показывает черный фон
Я пытаюсь реализовать анимацию, показанную здесь. Работает нормально, за исключением нераскрытой анимации, которая на мгновение показывает черный экран. Глюк существует не на всех устройствах / версиях API. Эмулятор Genymotion в Google Nexus 10 (API 22) не дает сбоев.
Выявить использование сложного набора анимаций:
- увядать
- перемещение макета
- CircularReveal с конечным радиусом меньше начального радиуса
- так далее
Я пытался установить background
/foreground
/tint
макетов в @null
/@android:color/transparent
и т. д., но это совсем не помогает.
1 ответ
Сбой происходит только с 3 вещами одновременно в коде:
CircularReveal
макет с предметами- Исчезать макет
CircularReveal
или его дочерний макет - задавать
clipChildren=false
по раскрытию макета
Мне нужно было использовать clipChildren
сделать эффект перемещения CircularReveal
круг со стабильным содержимым, которое не двигается, кроме кнопки закрытия.
Как я могу догадаться, проблема была с отсечением. CircularReveal
использовать отсечение, clipChildren
используйте это тоже, а затем alpha
сделал его грязным (черным). Я не могу понять, почему это происходит в Android SDK, но у меня есть решение:
запрещать clipChildren
(установить его true
) когда вам это не нужно. Я сделал это на неприкрытой анимации. Результат ниже:
PS Если у вас есть более конкретный ответ с подробностями о причине глюка, я бы с радостью отметил ваш ответ как правильный.
PPS Для всех, кто интересуется реализацией анимации, я поделился здесь.