Comment faire pour supprimer une vue animée après la fin de l'animation dans Android?
Je suis à l'aide d'une droite à gauche en mouvement de l'animation dans un RelativeLayout.
J'ai essayé de définir la Visibilité de "GONE" pour la Mise en page dans le onAnimationEnd()
,mais ça ne fonctionne pas. La vue animée est toujours là dans le lieu où il s'arrête.
C'est le code que j'ai utilisé:
Création d'une animation pour la droite vers la gauche:
TranslateAnimation animate = new TranslateAnimation(0,-rlImages.getWidth()/2,0,0);
animate.setDuration(1000);
animate.setFillAfter(true);
Réglage de l'animation de la mise en page:
centre_leftanimate.startAnimation(animate);
L'ajout d'auditeurs à l'animation:
animate.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
//TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
//TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
//TODO Auto-generated method stub
centre_leftanimate.setVisibility(View.GONE); //I wants to make the visibility of view to gone,but this is not working
half_left.setVisibility(View.VISIBLE);
}
});
Comment faire de la visibilité de vue animée d'être invisible après la fin de l'animation?
S'il vous plaît suggérer.
OriginalL'auteur user1891910 | 2013-10-30
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème, sauf que j'ai réellement supprimé de la vue en cours d'animation, mais l'animation a persisté!
La solution la plus simple est d'annuler l'animation, alors vous pouvez masquer ou supprimer la vue.
ou si vous avez encore votre animation de l'objet:
EDIT: Il semble y avoir de plus avec la solution ci-dessus, j'ai donc ajouté ceci:
OriginalL'auteur 3c71
J'ai eu le même problème et dans mon cas, la suppression
dans l'animation responsables de la suppression de vue et ce code de résoudre mon problème. Mais d'autres auront un meilleur code.
OriginalL'auteur KaungMyatMin
Vous pouvez définir la Visibilité de votre point de Vue lorsque vous le souhaitez.
Si vous le réglez à Vue.INVISIBLE à droite après le début de l'animation, l'animation sera visible, et la Vue disparaît dès que l'animation s'arrête.
Je pense que le problème avec votre code pourrait être que vous êtes en utilisant ALLÉ à la place de l'INVISIBLE.
Le deuxième problème est peut-être que vous commencez à l'animation avant de l'auditeur, mais avec ma solution vous n'avez pas besoin en fait n'importe quel auditeur.
Aussi, à emporter l'FillAfter option.
Avez-vous retirer la setFillAfter(vrai)?
S'il vous plaît essayer le code ci-dessus, sans auditeurs.
OriginalL'auteur Beppi's
Je sais que c'est une vieille question, mais j'ai rencontré ce problème aujourd'hui et j'ai voulu montrer comment je l'ai résolu, parce que, bien que les réponses déjà posté aidé, aucun d'entre eux a été parfaitement de travail pour mon cas.
Dans mon cas, j'ai créé un affichage personnalisé dinamically, appliqué 2 animations (alpha et de traduction), et retiré de la vue après les animations ont été faites. Voilà comment j'ai fait:
Noter que cela a été fait à l'intérieur d'un affichage personnalisé (qui a prolongé d'un FrameLayout), tout fonctionne sur le thread d'INTERFACE utilisateur.
OriginalL'auteur Synx
J'ai eu le même problème et je résoudre ce problème avec la réponse à cette question Android - supprimer la Vue lors de son animation fini.
EDIT:
Vous pouvez faire quelque chose comme ça :
LayoutMain est la page qui contient la vue.
MN est de votre activité.
Vous devez faire quelque chose comme dans mon edit
OriginalL'auteur Paul Souteyrat
juste appeler à l'intérieur de onAnimationEnd
OriginalL'auteur Amir Hossein Ghasemi