Fragment de transaction animation: faites glisser et coulissant
J'ai vérifier quelques tutoriels pour animer des transactions entre les fragments. J'ai utilisé cette méthode pour l'animation et ça fonctionne:
fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left,
android.R.anim.slide_out_right);
Mais je veux que l'animation c'est inversé: le vieux fragment de glisser vers la gauche, et le nouveau fragment de glisser vers la droite, mais n'a aucune valeur de R.anim
fichier semble être utile à ma portée.
Comment puis-je le faire?
- à mon avis, vous pourriez essayer de
override
key_code==back_key_press
dans votre deuxième fragment. - peut-être que je ne suis pas explane moi bien. Je veux que lorsque fragment de swap, vieux fragment de lame sur le côté gauche, et un fragment d'entrer à partir de la droite. Avec ce code, le comportement est à l'opposé
- La réponse ici: stackoverflow.com/questions/10886669/...
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR Pour Android v19+ voir ce lien via @Sandra
Vous pouvez créer vos propres animations. Lieu de l'animation des fichiers XML dans
res > anim
enter_from_left.xml
enter_from_right.xml
exit_to_left.xml
exit_to_right.xml
UTILISATION
(notez que l'ordre dans lequel vous les appeler des méthodes sur la matière de transactions. Ajouter de l'animation avant de vous appeler .remplacer, .commit):
700
est un peu beaucoup pour ces animations, à mon avis. Le Android-cadre a 3 presets pour le calendrier:android:duration="@android:integer/config_longAnimTime"
,android:duration="@android:integer/config_mediumAnimTime"
etandroid:duration="@android:integer/config_shortAnimTime"
, ce qui correspond à 500, 400 et 200. Je suppose que l'appareil est de quelques millisecondes, mais je ne suis pas sûr.fragmentTransaction.replace()
comme mentionné par @moondroid , vous pouvez être à l'origine des fragments de frapper les événements de cycle de vie inutilement lorsque l'utilisateur appuie sur le bouton de retour par rapport àfragmentTransaction.add()
. Mais, si vous utilisez.add()
, vous n'allez pas vous faire que des belles d'une animation : -) Voir ici: stackoverflow.com/a/21684520/1738090Il y a trois façon de transaction de l'animation dans le fragment.
Transitions
Animations Personnalisées
Vous pouvez également personnaliser l'animation à l'aide de la setCustomAnimations() méthode:
slide_up.xml
slide_down.xml
De Multiples Animations
Pour plus de détails, vous pouvez visiter URL
Remarque:- Vous pouvez vérifier l'animation en fonction de votre exigence, étant donné ci-dessus peut-être problème.
slide_in_down.xml
slide_in_up.xml
slide_out_down.xml
slide_out_up.xml
direction = bas
direction = up
C'est une autre solution que j'utilise:
L'utilisation de la classe. Disons que vous avez deux fragments (la liste et les coordonnées des fragments)comme indiqué ci-dessous
Utilisation
Vous pouvez utiliser la fonction
CustomAnimator.reversePrevious();
pour obtenir la vue précédente lorsque l'utilisateur appuie sur le dos.J'ai le même problème, j'ai utilisé la solution la plus simple
1)créer sliding_out_right.xml dans anim dossier
2) créer sliding_in_left.xml dans anim dossier
3) en utilisant simplement fragment de transaction setCustomeAnimations() avec deux xml personnalisé et deux xml par défaut pour l'animation comme suit :-