overridePendingTransition pour des activités de glissement dans et hors de douceur
Je vais avoir de la difficulté à trouver comment faites glisser les activités dans et hors d'une simple pression sur un bouton. Ce que je veux, c'est pour l'utilisateur de pousser un bouton et l'écran de diapositives. La façon dont je veux c'est pour la 1ère activité (l'un avec le bouton) pour le faire glisser vers la gauche, tandis que la nouvelle 2ème activité diapositives à partir de la droite.
Avec le code ci-dessous, lorsque le bouton est cliqué, la 1ère activité glisse vers la droite quand je veux le faire glisser vers la gauche. Puis, quand il est fait coulissantes, tout ce qui reste est un écran noir pendant une fraction de seconde, puis la 2ème activité paraît juste et ne glisse pas.
Donc le 1er de l'activité est à glisser sur la mauvaise direction et l'activité suivante apparaît à la place de glissement. Ce que je fais mal? Je vais avoir du mal à comprendre les fichiers XML afin de les entendre, c'est le code pour tout ci-dessous.
1ère activité
@Override
public void onCreate(Bundle savedInstanceState) {
playBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainMenu.this, Levels.class);
startActivity(intent);
overridePendingTransition(R.anim.enter_from_right, R.anim.exit_out_left);
}
});
2ème activité
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.levels);
overridePendingTransition(R.anim.enter_from_left, R.anim.exit_out_right);
Donc, je pense que certains de mes fichiers XML sont peut-être incorrects. Ils sont ici.
enter_from_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="100%"
android:toXDelta="0%" >
</translate>
</set>
enter_from_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="-100%"
android:toXDelta="0%" >
</translate>
</set>
exit_out_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="0%"
android:toXDelta="-100%" >
</translate>
</set>
exit_out_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="0%"
android:toXDelta="100%" >
</translate>
</set>
MODIFIER
Retrait de la overridePendingTransition()
à partir de la 2e activité fait en sorte de la 1ère activité de glisse à gauche, qui est ce que je voulais. Mais, lors de la 1ère activité se dérobe, il est toujours juste de révéler un écran noir au lieu d'avoir la 2ème activité la diapositive à partir de la droite.
source d'informationauteur Matt
Vous devez vous connecter pour publier un commentaire.
Au lieu de l'annulation de l'animation dans les deux
startActivity()
et les nouvelles activitésonCreate()
vous avez seulement besoin de remplacer l'animation juste après lastartActivity()
appel.Les deux
int
s que vous fournissez pouroverridePendingTransition(int enterAnim, int exitAnim)
correspondent aux deux animations - le retrait de l'ancienActivity
et l'ajout de la nouvelle.Pour votre deuxième question, je pense que vous avez la fromXDelta mal réglé, -100% devrait être tout le chemin hors de la de gauche côté de l'écran, pas le droit, de modifier cela à 100% devrait résoudre le problème.
Il y a une erreur, non seulement dans le enter_from_right animation, qui devrait avoir un fromXDelta de 100% au lieu de 100%, mais même dans le enter_from_left animation, qui devrait fave un fromXDelta de -100% au lieu de 100%.
Acclamations,
Changement
fromXDelta
à-100%
deenter_from_left
etfromXDelta
à100%
deenter_from_right
dans votre code, ce qui vous donnera un bon glissement de l'animation.regarde mon gist, il fonctionne parfaitement:
1.Remplacer CommonActivity de startActivity et la finition
2.from_left_in.xml
3.from_right_in.xml
4.from_left_out.xml
5.from_right_out.xml
gist lien: https://gist.github.com/JagieChen/f5cc44bf663f3722bd19097be47ccf9b