Circular Reveal показывает черный фон

Я пытаюсь реализовать анимацию, показанную здесь. Он работает нормально, за исключением неявной анимации, которая на мгновение показывает черный экран. Глюк существует не на всех версиях устройств / api. Эмулятор Genymotion Google Nexus 10 (API 22) действительно показывает сбой.

Непонятно использовать сложный набор анимаций:

  • тускнеть
  • перемещение макета
  • CircularReveal с конечным радиусом меньше начального радиуса
  • e.t.c.

Я пытался установить _1 _ / _ 2 _ / _ 3_ макетов на _4 _ / _ 5_ и т.д., но это не помогло.


person Nexen    schedule 25.06.2017    source источник


Ответы (1)


Глюк возникает только с 3-мя вещами сразу в коде:

  • CircularReveal макет с элементами
  • Макет Fade для CircularReveal или его дочернего макета
  • установить clipChildren=false на раскрытие макета

Мне нужно было использовать clipChildren, чтобы создать эффект перемещения круга CircularReveal со стабильным содержимым, которое не перемещается, за исключением кнопки закрытия.

Как я догадываюсь, проблема была в обрезке. CircularReveal использовать обрезку, clipChildren тоже использовать, а затем alpha сделал это грязным (черным). Я не могу понять, почему это происходит в Android SDK, но у меня есть решение:

отключите clipChildren (установите true), когда он вам не нужен. Я сделал это на нераскрытой анимации. Результат ниже:

P.S. Если у вас есть более конкретный ответ с подробностями о причине сбоя, я с радостью отмечу ваш ответ как правильный.

P.P.S. Для всех, кто заинтересован в реализации анимации, я поделился ею здесь.

person Nexen    schedule 25.06.2017