EditText bleibt nach der Animation hängen und läuft beim Scrollen weiter ...?

8

Ich stehe vor einem ziemlich interessanten, aber ärgerlichen Fehler, in meinem linearen Layout habe ich ein anderes lineares Layout mit Rand im Negativ ausgeblendet und wenn der Benutzer einen Typ aus einer Liste auswählt, bringe ich das Layout mit Translational Animation in Front kommt nach vorne habe einen editierbaren Text, der tot wird und wenn ich scrolle (mein Hauptlayout wird von scroll view umgeben) wird es lebendig und wenn ich aufhören zu scrollen wird es wieder tot ... ich wirklich versäumt zu beurteilen, warum das passiert so Jungs plz Hilfe ....

Ich habe auch einen Video-Link eingefügt, der dieses nervige Verhalten meiner App zeigt.

Ссылка

Meine Layout-XML in der Bildlaufansicht ist

%Vor%

Die leere lineare Layout-Schaltfläche unterhalb wird für das dynamische Hinzufügen von untergeordneten Ansichten verwendet, während alle anderen Funktionen ihre Funktionalität ordnungsgemäß ausführen, nur der Text, der dieses abnormale Verhalten zeigt.

Der für die Animation verwendete Code ist unter

%Vor%     
Umar Qureshi 19.10.2011, 15:46
quelle

1 Antwort

23

Das Problem hier war, wenn slider.setFillAfter(true); den Code animiert das Bild von Ansichten, aber nicht die tatsächlichen Ansichten, weshalb, wenn ich sie nach dem Herunterrutschen Animation sehen sie waren (EditText und Speichern-Taste) fest oder Sie können sagen, tot und nicht auf ihre Ereignisse hören, weil die tatsächlichen Ansichten hinter dem Layout waren und vorne nur ihr Bild war

Die Lösung, die ich für dieses Problem gefunden habe, ist der folgende Code:

%Vor%

Und dann, um tatsächliche Ansichten des neuen Ortes anzuzeigen, indem Sie den Animationslistener einstellen und die folgende Methode verwenden:

%Vor%

Platzieren Sie die Ansichten am Ende der Animation mit der obigen Methode an eine neue Position. Und hier kommt noch ein weiteres Problem des Blinzelns, das auf das Problem in android Animation Listener-Methode zurückzuführen ist, dass es aufgerufen wird, bevor tatsächlich Animation beendet und verursacht Blinken-Effekt, eine knifflige Lösung ist, indem Sie folgende Zeile Code in der ersten Zeile von public void onAnimationEnd(Animation a) Methode.

%Vor%     
Umar Qureshi 21.10.2011, 07:35
quelle

Tags und Links