2017-06-25 5 views
1

Ich versuche, Animation shown here zu implementieren. Es funktioniert gut, außer für unrealistische Animationen, die für einen Moment einen schwarzen Bildschirm zeigen. Der Fehler existiert nicht auf allen Geräten/API-Versionen. Der Genymotion-Emulator von Google Nexus 10 (API 22) zeigt den Fehler.Circular Reveal zeigt schwarzen Hintergrund

Unreveal Verwendung komplexe Reihe von Animationen:

  • verblassen
  • Layout
  • CircularReveal mit Endradius Bewegen weniger als Radius
  • e.t.c. starten

Ich versuchte background/foreground/tint von Layout @null/@android:color/transparent und e.t.c. zu setzen, aber es überhaupt nicht helfen.

Antwort

1

Die Panne tritt nur bei 3 Dinge auf einmal in den Code ein:

  • CircularReveal Layout mit Elementen
  • Fade Layout CircularReveal oder sein Kind Layout
  • clipChildren=false auf enthüllt Layout gesetzt

Ich musste clipChildren verwenden, um den Effekt des Verschiebens CircularReveal Kreis mit stabilem Inhalt zu machen, der Bewegen Sie sich nicht, außer beim Schließen.

Wie ich erraten kann, war das Problem mit Clipping. CircularReveal Verwenden Sie Clipping, clipChildren verwenden Sie es auch, und dann alpha machte es schmutzig (schwarz). Ich kann nicht verstehen, warum es in Android SDK passiert, aber ich habe eine Lösung:

deaktivieren clipChildren (setzen Sie es true), wenn Sie es nicht brauchen. Ich habe es mit unrealistischen Animationen gemacht. Das Ergebnis ist unter:

P. S. Wenn Sie eine genauere Antwort mit Details zur Ursache des Fehlers haben, würde ich Ihre Antwort gerne als richtig markieren.

P.P.S. Für alle, die sich für die Implementierung von Animationen interessieren, I shared it here.

Verwandte Themen