Android – Comment arrêter l'animation entre les changements d'activité

J'ai plusieurs activités différentes dans mon application et je ne veux aucune animation de transition lorsqu'on change entre les activités. Voici la façon dont je change entre les activités:

Intent i = new Intent(FirstActivity.this, SecondActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(i); 

Cela fonctionne génial la première fois que je lance une nouvelle activité. Il n'y a pas d'animation, mais quand je reviens sur une Activité déjà démarrée, il semble que "Intent.FLAG_ACTIVITY_NO_ANIMATION" soit ignoré et que l'animation par défaut se produise.

  • Animation personnalisée dans Android
  • Android: Utilisation d'ObjectAnimator pour traduire une vue avec des valeurs fractionnaires de la dimension de la vue
  • Fragments ViewPager - Transitions d'éléments partagés
  • Animation des fragments et du dossier
  • Circulaire révèle une transition pour une nouvelle activité
  • Démarrez une nouvelle activité sans animation de transition dans Android 1.6
  • Je ne peux pas comprendre pourquoi cela se produit.

  • Comment supprimer l'avertissement "Éviter d'utiliser l'extension de version de Google Play SDK"?
  • 'Dépendances' ne peuvent pas être appliquées à '(groovy.lang.Closure)'
  • Utilisation de Gradle pour diviser les bibliothèques externes dans des fichiers dex séparés pour résoudre la limite des méthodes Android Dalvik 64k
  • Comment classer les fichiers dans un répertoire Android?
  • Ajouter un en-tête / pied de page dans une liste dans xml
  • Rafraîchir le fragment au rechargement
  • 5 Solutions collect form web for “Android – Comment arrêter l'animation entre les changements d'activité”

    Avez-vous essayé overridePendingTransition() ?

    Vous pouvez définir FLAG_ACTIVITY_REORDER_TO_FRONT par code et FLAG_ACTIVITY_NO_ANIMATION dans manifeste comme ci-dessous:

    Créer noAnimTheme en res / values ​​/ styles.xml

     <style name="noAnimTheme" parent="android:Theme"> <item name="android:windowAnimationStyle">@null</item> </style> 

    ou

     <style name="noAnimTheme" parent="android:Theme.NoTitleBar"> <item name="android:windowAnimationStyle">@null</item> </style> 

    Et l'utiliser en manifeste:

     <activity android:name="SecondActivity" android:theme="@style/noAnimTheme"/> 

    J'espère que ça aide

    J'avais besoin de cela car je devais créer des activités en cliquant sur les menus.

    J'ai fait ce qui suit:

    J'ai ajouté le drapeau FLAG_ACTIVITY_NO_ANIMATION à l'intention. Il a arrêté les animations lors de la création de l'activité pour la première fois.

    Cependant, les activités dans la pile qui ont été appelées lorsque nous faisons clic sur le même menu à nouveau (probablement à partir d'une activité différente), a eu l'animation.

    J'ai donc ajouté FLAG_ACTIVITY_NO_HISTORY pour effacer ou plutôt terminer l'activité lorsqu'elle démarre une nouvelle activité. Cela a provoqué la création d'une nouvelle activité (sans animation) lorsque je clique sur le menu une fois de plus.

    Ajoutez ceci après avoir créé la deuxième intention

      Intent i = new Intent(SecondActivity.this, FirstActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(i); 

    Lorsque vous revenez à la première intention, l'animation est désactivée, a bien fonctionné pour moi.

    Si vous utilisez FLAG_ACTIVITY_REORDER_TO_FRONT, vous pouvez également annuler onNewIntent pour les appels de début d'activité suivants. Cela servira simplement à rapporter les états avant au lieu du premier appel.

     @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); overridePendingTransition(R.anim.whatever, R.anim.whatever); } 

    Bien sûr, vous devez l'implémenter dans l'activité cible.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.