Ich habe einige Tutorials auf animierte Transaktionen zwischen Fragmenten überprüft. Ich habe diese Methode für die Animation verwendet und sie funktioniert:
fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left,
android.R.anim.slide_out_right);
Aber ich möchte diese Animation umkehren: Das alte Fragment wird nach links und das neue Fragment nach rechts verschoben, aber kein Wert der R.anim
Datei scheint für meinen Bereich nützlich zu sein.
Wie kann ich es tun?
override
key_code==back_key_press
in Ihrem zweiten Fragment versuchen .Antworten:
UPDATE Für Android v19 + siehe diesen Link über @Sandra
Sie können Ihre eigenen Animationen erstellen. Platzieren Sie Animations-XML-Dateien in
res > anim
enter_from_left.xml
enter_from_right.xml
exit_to_left.xml
exit_to_right.xml
Sie können die Dauer auf kurze Animationszeit ändern
oder lange Animationszeit
VERWENDUNG (Beachten Sie, dass die Reihenfolge, in der Sie Methoden für die Transaktion aufrufen, von Bedeutung ist. Fügen Sie die Animation hinzu, bevor Sie .replace, .commit aufrufen.)
quelle
700
ist meiner Meinung nach für solche Animationen etwas hoch. Das Android-Framework verfügt über 3 Voreinstellungen für das Timing :android:duration="@android:integer/config_longAnimTime"
,android:duration="@android:integer/config_mediumAnimTime"
undandroid:duration="@android:integer/config_shortAnimTime"
, was 500, 400 und 200 entspricht. Ich denke, das Gerät ist Millisekunden, aber ich bin mir nicht sicher.Es gibt drei Möglichkeiten zur Transaktionsanimation in Fragmenten.
Übergänge
Benutzerdefinierte Animationen
Sie können die Animation auch mithilfe der setCustomAnimations () -Methode anpassen:
slide_up.xml
slide_down.xml
Mehrere Animationen
Für weitere Informationen können Sie die URL besuchen
Hinweis: - Sie können die Animation gemäß Ihren Anforderungen überprüfen, da oben möglicherweise ein Problem vorliegt.
quelle
Ich habe das gleiche Problem, ich habe eine einfache Lösung verwendet
1) Erstellen Sie die Datei sliding_out_right.xml im Animationsordner
2) Erstellen Sie die Datei sliding_in_left.xml im Animationsordner
3) Verwenden Sie einfach die Fragmenttransaktion setCustomeAnimations () mit zwei benutzerdefinierten XML- und zwei Standard-XML-Dateien für die Animation wie folgt: -
quelle
slide_in_down.xml
slide_in_up.xml
slide_out_down.xml
slide_out_up.xml
Richtung = nach unten
Richtung = nach oben
quelle
Dies ist eine andere Lösung, die ich benutze:
Die Verwendung von Klasse. Angenommen, Sie haben zwei Fragmente (Listen- und Detailfragmente), wie unten gezeigt
Verwendung
Sie können die Funktion verwenden
CustomAnimator.reversePrevious();
, um die vorherige Ansicht abzurufen, wenn der Benutzer zurückgedrückt hat.quelle