【问题标题】:Circular Reveal shows black background圆形显示显示黑色背景
【发布时间】:2017-06-25 16:07:02
【问题描述】:
我正在尝试实现动画shown here。它工作正常,除了 unreveal 动画,它显示片刻黑屏。并非所有设备/api 版本都存在故障。 Google Nexus 10 (API 22) 的 Genymotion 模拟器确实显示了故障。
Unreveal 使用复杂的动画集:
- 褪色
- 布局移动
- 结束半径小于开始半径的 CircularReveal
- 等
我尝试将布局的background/foreground/tint 设置为@null/@android:color/transparent 等,但它根本没有帮助。
【问题讨论】:
标签:
android
animation
fade
clip
circularreveal
【解决方案1】:
该故障仅在代码中同时发生 3 件事情发生:
-
CircularReveal 带有项目的布局
-
CircularReveal 或其子布局的淡入淡出布局
- 设置
clipChildren=false 显示布局
我需要使用clipChildren 来实现移动CircularReveal 圆圈的效果,除了关闭按钮之外,不会移动的稳定内容。
我可以猜到,问题出在剪辑上。 CircularReveal 使用剪辑,clipChildren 也使用它,然后 alpha 将其弄脏(黑色)。我无法理解为什么它会在 Android SDK 中发生,但我有一个解决方案:
在不需要时禁用clipChildren(设置为true)。我是在 unreveal 动画上做到的。结果如下:
附:
如果您有更具体的答案以及故障原因的详细信息,我很乐意将您的答案标记为正确答案。
附言
对于任何对动画实现感兴趣的人,我shared it here。