Les animations de sortie d'activité ne fonctionnent pas comme prévu sur Android 4.0
J'ai un thème qui change l'activité de l'ouvrir/fermer/entrer/sortir des animations:
<style name="down_up_theme" parent="Theme.rtlfr">
<item name="android:windowAnimationStyle">@style/down_up_animation</item>
</style>
<style name="down_up_animation" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/slide_in_top</item>
<item name="android:activityOpenExitAnimation">@anim/hold</item>
<item name="android:activityCloseEnterAnimation">@anim/hold</item>
<item name="android:activityCloseExitAnimation">@anim/slide_out_bottom</item>
</style>
Et dans le manifeste:
<activity android:name=".activity.ArticlesActivity"
android:theme="@style/down_up_theme" />
L'objectif est de faire de l'activité contenu de la diapositive vers le bas sur démarrer, puis faites glisser jusqu'à la sortie.
Les animations fonctionnent très bien sur 2.3. Sur 4.0, cependant, la sortie de l'animation (le glisser vers le haut) ne fonctionne pas. Ce qu'il fait animate est la clôture des activités qui sont générés par cette activité. Dans mon cas, je veux animer la clôture de l'activité avec la liste des articles, au lieu de la clôture de l'article du détail a de la diapositive d'animation.
Je suppose que je pourrais essayer d'ajouter de l'animation de fermeture de l'activité qui engendre celui que je veux pour animer, mais il engendre des activités qui devraient avoir différentes animations. J'ai aussi ne pouvais pas trouver toutes les informations sur cette 2.3 vs 4.0 différence dans la la documentation.
Comment puis-je faire mes animations de travail sur la 4.0?
source d'informationauteur Bastien Léonard
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr pourquoi, la sortie d'animation défini dans le thème ne fonctionne pas sur ICS+, mais en l'appelant
overridePendingTransition()
semble être au travail. La façon la plus simple de le faire pour vous est probablement pour remplacerfinish()
dans votre Activité:Je voudrais juste ajouter un petit plus à cette réponse; le remplacement de l'animation de la solution fonctionne très bien, mais vous ne voulez probablement pas à coder en dur les animations. Il serait agréable de les obtenir à partir de l'manifeste comme vous le feriez pour d'autres versions de la plate-forme.. donc....
ajouter un couple de champs des membres de votre activité à tenir les id des animations attaché à votre activité..
et quelque part dans votre onCreate...
alors, où que votre activité de fin/doivent appliquer l'animation...
et de vos activités devraient correctement l'honneur les animations que vous définissez dans le thème/style attachés à des activités dans votre manifeste.
J'ai été confondu par ce problème, trop. Mais heureusement, bientôt, plus tard, j'ai trouvé la réponse. Vous devriez vérifier votre fichier d'animation si son élément racine est "Set" ou pas. Si elle ne l'est pas, vous devez envelopper avec "Set" et puis ActivityCloseAnimation attribut, beau travail.
Je l'ai essayé. Espérons qu'il pourra vous aider.
vous devriez regarder ici utilisation overridePendingTransition et windowEnterAnimation/windowExitAnimation devraient travailler pour vous