Transition android fragment de glisser vers le haut
J'ai un fragment qui est à remplacer, un autre fragment. Je tiens à préciser que l'animation. Mais l'animation est ignoré.
transaction.replace(R.id.my_fragment, newFrag);
transaction.addToBackStack(null);
transaction.setCustomAnimations(R.anim.slide_in_up, R.anim.slide_out_up);
slide_in_up
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="0%p"
android:toYDelta="100%p" />
slide_out_up
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="100%p"
android:toYDelta="0%p" />
Que je ne suis pas vraiment d'essayer d'atteindre est pour le nouveau fragment de glisser à partir du bas. Mes animations sont ignorés. Qu'est-ce que le code manquant?
- des transactions.commit() 😛
- Voir cette réponse: stackoverflow.com/questions/21026409/...
Vous devez vous connecter pour publier un commentaire.
slide_in_up
slide_out_up
Il a été un certain temps depuis que cette question a été posée mais ici, c'est une réponse pour les autres personnes de venir ici:
e1da est droit dans la mesure où cette
setCustomAnimation()
appel doit être appelée avant quereplace()
. Sinon, l'animation ne s'affichera pas.Le deuxième problème, c'est que vous êtes probablement en utilisant natif des fragments qui ne peuvent pas être animés avec le point de vue des animations.
Utiliser les fichiers suivants:
slide_in_up.xml
slide_out_up.xml
Une petite explication:
Tu dois faire la différence entre la vue de l'animation pour le soutien des fragments d'une part, et la propriété de l'animation pour les natifs des fragments d'autre part.
Vue de l'animation:
Est le pré-android 3.0 pour animer le point de vue. Exemple de code pour ce qui est de la
slide_in.xml
etslide_up.xml
par user3093402Il vaut la peine de mentionner que vous ne peut pas animer les fragments de vue de l'animation. L'exception à cette règle sont des fragments de la bibliothèque de prise en charge (android.de soutien.v4.app.Fragment).
Propriété de l'animation
C'est la façon d'animer des objets, après android 3.0. Il est également déclarée .de fichiers xml, mais fait usage de la "valueAnimator" tag (objectAnimator s'étend valueAnimator). Des exemples sont dans la réponse à la question.
C'est de cette façon que natif des fragments (android.app.Fragment) peuvent être animés.
Voir aussi:
Espère que cette aide,
Kai
MODIFIER: Comme le souligne Raphaël Royer-Rivard fixe la taille de l'écran est une mauvaise pratique. Il serait préférable d'utiliser une constante de l'OS comme dans
getWindowManager().getDefaultDisplay().getMetrics(metrics).xdpi
(voir DisplayMetrics). Mais je n'ai pas fait de développement Android pour un certain temps, donc je ne sais pas lequel.
code pour slide_in_up :
code pour slide_in_down:
code pour slide_out_up:
code pour slide_out_down:
et après que, dans votre activité ou fragment de définir l'animation comme ci-dessous:
Actuellement avec
android.transition
c'est aussi simple quefragment.enterTransition = Slide()
oufragment.enterTransition = Fade()
Remarque: Min version L.
R. anim va pas y travailler, mais R. animateur wil faire.
par exemple
ici est complète de travail exemple
En appuyant sur le bouton pour basculer entre les 2 fragments A et B (en l'animation de diapositives de droite à gauche). Les fragments sont tout simplement stupide de texte (AAAAAA et BBBBB) avec des profils différents.
MainActivity.java
LL.java
main.xml (mise en page)
a.xml (mise en page)
b.xml (mise en page)
in.xml (anim)
out.xml (anim)