Changer l'animation du fragment déjà dans la pile

Supposons que je lance le code suivant pour placer un fragment dans la pile. Il définit les animations pour quand j'ai initialement vu le fragment et pour le moment où le fragment est terminé.

FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.setCustomAnimations(R.anim.slide_left, R.anim.no_anim, R.anim.no_anim_show, R.anim.slide_right_away); fragmentTransaction.replace(R.id.container, fragment, tag); fragmentTransaction.addToBackStack(tag); fragmentTransaction.commit(); 

Si je veux changer l'animation de sortie plus tard, comment puis-je faire cela? Comme dans, si j'avais le code suivant:

  • La passe touche à la vue sous
  • Rappels de réponse Okhttp sur le thread principal
  • Comment obtenir un fond transparent de la version WebView pour 4.0
  • Planification des processus Android
  • PhoneGap Build ne sera pas construit pour Android avec PushPlugin
  • Ajouter un projet android en tant que bibliothèque dans la application AOSP
  •  getFragmentManager().popBackStack(); 

    Mais je veux une animation différente, celle que j'ai initialement placée dans la pile.

  • Tables de relation dans sqlite sur Android
  • Passer de la disposition main.xml à une autre mise en page
  • Avis persistant d'application en cours sur Android 4.3
  • Quelle est la meilleure taille à utiliser pour un icône d'application Android
  • Comment modifier la couleur du texte ActionBar en utilisant AppCompat
  • Changer Drawable Basé sur le thème
  • 2 Solutions collect form web for “Changer l'animation du fragment déjà dans la pile”

    Voici ce que j'ai essayé, et cela a fonctionné:

     getFragmentManager().beginTransaction().setCustomAnimations( R.anim.slide_left, R.anim.new_anim) .remove(fragment) .commit(); 

    Donc, il semble que je devais explicitement "supprimer" le fragment dans une nouvelle transaction de fragment, afin d'utiliser la nouvelle animation de sortie

    Vous pouvez modifier l'animation personnalisée avant de sortir de la pile arrière

     getFragmentManager().beginTransaction().setCustomAnimations(R.anim.slide_left, R.anim.no_anim, R.anim.no_anim_show, R.anim.new_pop_exit).commit(); 

    Et exécuter les transactions en attente avant de faire apparaître la pile

     getFragmentManager().executePendingTransactions(); getFragmentManager().popBackStackImmediate(); 

    Remarque: les animations popExit seront jouées pour les opérations de sortie spécifiquement lors de l'apparition de la pile arrière

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.