5 Stimmen

Animieren einer Gruppe von Kindern in einer Ansichtsgruppe

Ich arbeite an einer benutzerdefinierten ViewGroup.

Diese ViewGroup hat eine Menge von Kindern. Ich muss einige davon animieren und ihre Position ändern. Ich verstehe, dass Android-Animationen nur das Bitmap verschieben und nicht das echte Objekt. Ich habe versucht, sie zu VERSCHIEBEN, indem ich verschiedenen Ressourcen gefolgt bin, aber bin gescheitert.

Was ich bisher mit ViewGroup gemacht habe:

  1. Die Kinder und die ViewGroup messen
  2. Die Kinder in onLayout positionieren

Was ich weiter versuchen möchte

Verwenden Sie eine benutzerdefinierte Animation, um eine kleine Teilmenge der Kinder zu verschieben. Ich verwende ein benutzerdefiniertes Animationsobjekt, weil ich eine Menge von Ansichten verschieben muss und ich translationX auf alle zusammen anwende. Die andere Option, die ich kenne, ist, eine separate Animation auf allen von ihnen zu starten, und die Idee davon lässt mich denken, dass es unoptimiert sein wird.

Problem

Die Ansichten animieren sich gut, aber ihre tatsächliche Position bleibt unverändert. Also, wenn ich beim nächsten Mal versuche, dieselbe Art von Animation durchzuführen, aber an neuen Koordinaten, funktioniert es nicht. Weil ihre Positionen nicht aktualisiert wurden.

Was habe ich versucht

  1. Verwenden Sie onAnimationEnd, um jedes der Kinder auf die neue linke, obere, rechte und untere Position zu layout. Alle Ansichten verschwanden
  2. Bei onAnimationEnd, setzen Sie translationX auf null zurück und beginnen Sie dann, die Ansichten neu zu positionieren. Keine Auswirkung durch Aufruf von view.setTranslationX(0f)

Kann mir bitte jemand helfen, den richtigen Weg zu finden, dies zu tun? Vielen Dank

1voto

pskink Punkte 23711

Bei der Animation rufen Sie layout() auf Ihren untergeordneten Ansichten auf

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X