Je pensais que le système inverserait les animations sur le backstack lorsque le bouton Back était pressé lors de l’utilisation de fragments en utilisant le code suivant:
FragmentManager fm = getFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); ft.setCustomAnimations(R.anim.slide_in, R.anim.hyperspace_out); ft.replace(R.id.viewContainer, new class(), "layout").addToBackStack(null).commit();
Selon la documentation Android pour l’animation personnalisée :
Changement:
ft.setCustomAnimations(R.anim.slide_in, R.anim.hyperspace_out);
À:
ft.setCustomAnimations(R.anim.slide_in, R.anim.hyperspace_out, R.anim.hyperspace_in, R.anim.slide_out );
et maintenant le backstack anime – In reverse !!
Utiliser l’animation correcte J’ai utilisé ce qui suit et son fonctionnement comme un charme
slide_in_left.xml
slide_in_right.xml
slide_out_left.xml
slide_out_right.xml
Ensuite, utilisez les suivants tout en ajoutant un fragment
setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left, R.anim.slide_out_right, R.anim.slide_in_right)
et ça marchera à 100%
dans mon cas
ft.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right, R.anim.slide_in_right, R.anim.slide_out_left);
créerait une animation parfaite.
slide_in_right
slide_out_left
.setCustomAnimations(R.animator.fragment_fade_in, R.animator.fragment_fade_out, R.animator.fragment_fade_p_in, R.animator.fragment_fade_p_out)
Remplacez ce qui précède par:
mFragmentManager.beginTransaction() .setCustomAnimations(R.animator.fragment_fade_in, R.animator.fragment_fade_out, R.animator.fragment_fade_p_in, R.animator.fragment_fade_p_out) .replace(R.id.main_container, FragmentPlayerInfo.getInstance(data)) .addToBackStack(FragmentPlayerInfo.TAG) .commit();