Android: Was ist los mit meiner Fragmentübergangsanimation?

Ich brauche einfach nur Slide in und gleiten Animation für Fragment Übergang, unten ist mein Code: slide_in_left.xml:

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="true"> <translate android:fromXDelta="-100%" android:toXDelta="0%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="700"> </translate> </set> 

Slide_out_right.xml:

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <translate android:fromXDelta="0%" android:toXDelta="100%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="700"> </translate> </set> 

Der Code, den ich benutzt habe:

 SomeFragment frag = SomeFragment.newInstance(foo); FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); ft.replace(R.id.the_fragment, frag); ft.addToBackStack(null); ft.commit(); 

Das Ergebnis sieht sehr seltsam aus, wenn der Übergang beginnt, verschwindet das aktuelle Fragment ohne Animation, das eintretende Fragment kommt (von links) wie ein Scrollpapier. Was ist los mit meinem Animations-XML-Code?

Vielen Dank!

  • Android: mache Animationen von Standbildern
  • Wie generiere ich eine Looping-Animation mit ViewPropertyAnimator?
  • Bounce-Taste am Hahn
  • Animieren eines benutzerdefinierten Dialogs
  • Challange: Benutzerdefinierte Animation von ViewPager. Höhen der ausgewählten Elemente ändern (Ansicht Falte)
  • Wer hat jemals eine grundlegende "Scan-Animation" auf ein Bild gemacht?
  • Animierter Hintergrund wie Timely Wecker App
  • Ändern Sie ViewPager Animationsdauer beim Programmieren programmgesteuert
  • 4 Solutions collect form web for “Android: Was ist los mit meiner Fragmentübergangsanimation?”

    GetSupportFragmentManager () bedeutet, dass Sie das Kompatibilitätspaket für Fragmente verwenden, denke ich. Ich habe das gleiche Problem, das überhaupt keine Animation ist.

    Weitere Informationen finden Sie unter http://groups.google.com/group/android-developers/browse_thread/thread/5ef5ba1be9f40c56/a846578d91a032c0?hide_quotes=yes#msg_8ca017c473818a04

    Google hat die Kompatibilitätsbibliothek aktualisiert und die Übergänge wurden behoben. Sie sollten Ihre Compatiblity-Bibliothek vom Android Sdk / Avd Manager aktualisieren.

    Ich fand einen coolen Post hier über die Fragment Kompatibilität Bibliothek Animationen Problem, ich nahm den zweiten Ansatz

    ….. Rufen Sie FragmentTransaction.setCustomAnimations () auf und referenzieren Sie entweder Animatoren oder Animationen (je nachdem, ob Sie die Kompatibilitätsbibliothek verwenden oder nicht). Was interessant ist, ist, dass setCustomAnimations () alle Fragmentübergänge beeinflusst, die der Transaktion hinzugefügt werden, nachdem sie aufgerufen wurde. So müssen Sie setCustomAnimations () anrufen, bevor Sie es verwenden möchten, und Sie können tatsächlich mehrere verschiedene benutzerdefinierte Animationen für jeden Teil einer Transaktion einrichten (mit einem Aufruf von setCustomAnimations () vor jedem add () / remove () / attach () / Detach () / show () / hide () / replace ()) ……

    so was

     FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.setCustomAnimations(R.anim.push_up_in,R.anim.push_up_out); ft.commit(); ft = getSupportFragmentManager().beginTransaction(); ft.setCustomAnimations(R.anim.push_up_in,R.anim.push_up_out); if (fragment1.isHidden()) { ft.show(fragment1); } else { ft.hide(fragment1); } ft.commit(); 

    Mit diesem habe ich das Problem für api Ebene 11 hoffe es funktioniert!

    Wenn du ViewPager benutzt hast

     mPager.setOffscreenPageLimit(YourFragmentsSize); 

    Diese Linie löste mein Problem, die Hoffnung funktioniert auch für dich. Aus diesem Thema

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.