Circular Reveal 显示黑色背景

Circular Reveal shows black background

我正在尝试实现动画 shown here。它工作正常,除了 unreveal 动画,显示黑屏片刻。并非所有 devices/api 版本都存在该故障。 Google Nexus 10 (API 22) 的 Genymotion 模拟器确实显示了故障。

Unreveal 使用复杂的动画集:

我尝试将 background/foreground/tint 的布局设置为 @null/@android:color/transparent 和 e.t.c,但是它一点用都没有。

故障仅在代码中同时发生 3 件事时发生:

  • CircularReveal 项目布局
  • CircularReveal 或其子布局
  • 的淡化布局
  • 在显示布局上设置clipChildren=false

我需要使用 clipChildren 来实现移动 CircularReveal 圆圈的效果,除了关闭按钮外,内容稳定且不会移动。

正如我所猜测的,问题出在剪辑上。 CircularReveal 使用裁剪,clipChildren 也使用它,然后 alpha 使其变脏(黑色)。我无法理解为什么它会在 Android SDK 中发生,但我有一个解决方案:

在不需要时禁用clipChildren(设置true)。我是在未公开的动画上做的。结果如下:

P.S。 如果您有更具体的答案并详细说明故障原因,我很乐意将您的答案标记为正确答案。

P.P.S。 对于任何对动画实现感兴趣的人,我 shared it here.