2010-07-20 7 views
39

L'animation par défaut lorsque vous appuyez sur le bouton Back est une diapositive de gauche à droite. Je voudrais remplacer cela par une animation personnalisée. Je pense actuellement qu'une combinaison de onBackPressed() et overridePendingTransition fera l'affaire, mais je n'ai pas réussi à le faire fonctionner.Animation du bouton de retour personnalisé

+0

Inclure quelques exemples de code, sinon on ne sait pas ce que vous pouvez faire mal. – prestomation

Répondre

111

Je pense que vous ne devriez pas utiliser la finition() parce que les données stockées par les vues seront effacées

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit); 
} 
+1

Ceci est correct. – dfetter88

+9

Prenez note du super, il doit être APRÈS, sinon aucun effet. –

+2

@ Chris.Jenkins Si vous dites que 'overridepending..' devrait être après le' super', alors oui. Il devrait être après tous les appels de fin. le super appelle fondamentalement une «finition». donc le 'override' devrait être après' finish' ou 'super' dans ce cas. – Niranjan

5

Compris. Je ne terminais pas l'activité actuelle. Le code suivant fait l'affaire.

@Override 
public void onBackPressed() { 
    [This Activity].this.finish(); 
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 
} 
+8

super.onBackPressed() appelle automatiquement fini. Utilisez cela au lieu d'appeler terminer manuellement .. –

Questions connexes