Ich habe drei Aktivitäten, deren Startmodi eine einzelne Instanz sind.
Mit onfling()
schwinge ich sie nach links und rechts.
Das Problem ist, wenn ich von rechts nach links wische, ist der Folienübergang in Ordnung, aber wenn ich von links nach rechts wische, erhalte ich den Übergang von rechts nach links.
Ich weiß, warum das passiert, weil ich immer neue Absichten sende. Aber jetzt muss ich die Animation des Gleitens von links nach rechts ändern.
Ich weiß, dass es eine Methode mit dem Namen gibt overridingTransitionPending()
, aber ich weiß nicht, wie ich meine Animation in XML definieren soll.
Antworten:
Verwenden Sie diese XML in
res/anim/
Dies ist für die Animation von links nach rechts:
Dies ist für die Animation von rechts nach links:
Verwenden Sie in Ihrer Codierung die Absicht wie von links nach rechts:
Verwenden Sie in Ihrer Codierung Absichten wie von rechts nach links
quelle
Wenn Sie möchten, dass der Übergang für die gesamte Anwendung funktioniert, können Sie eine erstellen
rootacivity
und diese in der gewünschten Aktivität erben. Im onCreate-Aufruf von Root ActivityoverridePendingTransition
mit der gewünschten Richtung. UndonStart
rufen SieoverridePendingTransition
mit einer anderen Richtung an, wenn die Aktivität wieder aufgenommen wird. Hier gebe ich unten den vollständigen laufenden Code an. Korrigieren Sie mich, wenn ich falsch liege.Erstellen Sie diese XML-Datei in Ihrem Animationsordner
anim_slide_in_left.xml
anim_slide_in_right.xml
anim_slide_out_left.xml
anim_slide_out_right.xml
RootActivity
FirstActivity
SecondActivity
Dritte Aktivität
und schließlich Manifest
quelle
Es wurde ein Beispielcode erstellt, der dasselbe mit Folieneffekten von links, rechts, oben und unten implementiert. (Für diejenigen, die nicht alle diese Animations-XML-Dateien erstellen möchten :))
Überprüfen Sie den Code auf Github
quelle
Verwenden Sie diesen Stil wie unten definiert.
erscheinen - lassen Sie es einfach erscheinen.xml
===========================================
Lass es langsam in view.xml einblenden
==========================================
Ausblenden - Lassen Sie es langsam aus view.xml ausblenden
==========================================
push_down_in.xml
==========================================
push_down_out.xml
==========================================
push_left_in.xml
==========================================
push_left_out.xml
==========================================
push_right_in.xml
==========================================
push_right_out.xml
==========================================
push_up_in.xml
==========================================
push_up_out.xml
==========================================
Rotation.xml
==========================================
scale_from_corner.xml
==========================================
scale_torwards_corner.xml
==========================================
shrink_and_rotate_a (exit) .xml
==========================================
shrink_and_rotate_b (Eingang) .xml
=======================================
blink.xml
=======================================
ZoomIn.xml
=======================================
ZoomOut.xml
=======================================
FadeIn.xml
=======================================
FadeOut.xml
=======================================
Move.xml
=======================================
SlideDown.xml
=======================================
SlideUp.xml
=======================================
Bounce.xml
quelle
Sie können Ihre Standardaktivitätsanimation überschreiben. Hier ist die Lösung, die ich benutze:
Erstellen Sie eine "CustomActivityAnimation" und fügen Sie diese mit "windowAnimationStyle" zu Ihrem Basisthema hinzu.
Erstellen Sie einen Animationsordner unter dem Ordner res und erstellen Sie dann diese vier Animationsdateien:
slide_in_right.xml
slide_out_left.xml
slide_in_left.xml
slide_out_right.xml
Dies ist mein Beispielprojekt in Github.
Das ist alles ... Viel Spaß beim Codieren :)
quelle
Sie können dies auch tun:
Und Sie müssen keine Animations-XML hinzufügen
quelle
Mit ViewPropertyAnimator konnte ich keine Lösung für diese Art von Animation finden.
Hier ist ein Beispiel:
Layout:
Animieren - Von rechts nach links und Ansicht verlassen:
Animieren - Ansicht von rechts nach links aufrufen:
quelle
Wenn Ihre API-Stufe 19+ ist, können Sie
translation
wie oben verwenden. Wenn Ihre API-Stufe unter 19 liegt, können Sie sich ein ähnliches Tutorial ansehen: http://trickyandroid.com/fragments-translate-animation/quelle
Für von rechts nach links schieben
res / anim / in.xml:
res / anim / out.xml:
in der Java-Aktivitätsdatei:
Sie können die Dauer in den XML-Dateien für die längere oder kürzere Folienanimation ändern.
quelle