J'ai vérifié certains tutoriels pour animer la transaction entre les fragments. J'ai utilisé cette méthode pour l'animation et cela fonctionne:
fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left,
android.R.anim.slide_out_right);
Mais je veux inverser cette animation: l'ancien fragment glisse vers la gauche et le nouveau fragment glisse vers la droite, mais aucune valeur de R.anim
fichier ne semble être utile pour ma portée.
Comment puis-je le faire?
override
key_code==back_key_press
dans votre deuxième fragment.Réponses:
MISE À JOUR Pour Android v19 + voir ce lien via @Sandra
Vous pouvez créer vos propres animations. Placer les fichiers XML d'animation dans
res > anim
enter_from_left.xml
enter_from_right.xml
exit_to_left.xml
exit_to_right.xml
vous pouvez changer la durée en une courte durée d'animation
ou longue durée d'animation
UTILISATION (notez que l'ordre dans lequel vous appelez les méthodes sur la transaction est important. Ajoutez l'animation avant d'appeler .replace, .commit):
la source
700
est un peu trop pour de telles animations, à mon avis. Le cadre Android a 3 présélections pour le moment: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 pense que l'unité est la milliseconde, mais je ne suis pas sûr.Il existe trois méthodes pour l'animation de transaction dans le fragment.
Les transitions
Animations personnalisées
Vous pouvez également personnaliser l'animation à l'aide de la méthode setCustomAnimations ():
slide_up.xml
slide_down.xml
Animations multiples
Pour plus de détails, vous pouvez visiter l'URL
Remarque: - Vous pouvez vérifier l'animation en fonction de vos besoins car ci-dessus peut avoir un problème.
la source
J'ai le même problème, j'ai utilisé une solution simple
1) créez le fichier glissant_out_right.xml dans le dossier anim
2) créez le fichier glissant_in_left.xml dans le dossier anim
3) en utilisant simplement la transaction de fragment setCustomeAnimations () avec deux xml personnalisés et deux xml par défaut pour l'animation comme suit: -
la source
slide_in_down.xml
slide_in_up.xml
slide_out_down.xml
slide_out_up.xml
direction = bas
direction = haut
la source
Voici une autre solution que j'utilise:
L'utilisation de la classe. Disons que vous avez deux fragments (liste et détails des fragments) comme indiqué ci-dessous
Usage
Vous pouvez utiliser la fonction
CustomAnimator.reversePrevious();
pour obtenir la vue précédente lorsque l'utilisateur a appuyé sur.la source