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:

  • Animationsübergang zwischen Aktivitäten mit FLAG_ACTIVITY_CLEAR_TOP
  • Wie man eine Fade-Animation auf Activity-Übergang durchführt?
  • Android Activity Transition in einer ListView
  • Bildschirm blinkt zufällig beim Verwenden von overridePendingTransition auf Jelly Bean
  • Gibt es nützliche Android Animation Tutorial für Anfänger?
  • Bild zur Video-Konvertierung mit Übergangseffekt
  •  <?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!

  • TextInputLayout: Wie gibt man Polsterung oder Marge zum Hinweis?
  • OpenGL ES 2.0 Mehrere Programme oder mehrere Shader oder was? Wie funktioniert es?
  • Wie kann ich auf den SMS-Speicher auf Android zugreifen?
  • Setzen Sie Android Datum / Uhrzeit programmgesteuert
  • Zugriff auf Google Talk Chat Geschichte
  • Die perfekte Funktion, um Android Internet-Konnektivität einschließlich Bluetooth-Pan zu überprüfen
  • 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.