J'ai une animation de fondu dans une vue (qui est à l'intérieur d'un fragment), et chaque fois que l'animation se produit, une fois qu'elle est terminée, la vue se redessine. J'ai trouvé un travail autour de faire view.SetVisibility(View.GONE)
. Mais il n'attend pas la fin de l'animation. Je souhaite exécuter ce code setVisibility uniquement après la fin de l'animation. Quelle est la meilleure façon de le faire?
android
android-fragments
android-animation
Paulo Barros
la source
la source
Réponses:
Vous pouvez ajouter un écouteur d'animation à votre objet d'animation comme
la source
if (!anim.hasStarted() || anim.hasEnded())
pour détecter si l'animation est toujours en cours d'exécution.Fonctionnellement identique à la réponse acceptée mais d'une manière beaucoup plus concise:
Prendre plaisir :)
la source
.withEndAction(() -> theView.setVisibility(View.GONE));
Vous pouvez également y parvenir en utilisant Animation.setFillAfter
la source
Prenez simplement votre objet d'animation et ajoutez-y un écouteur d'animation. Voici l'exemple de code:
la source
Exemple pour Kotlin
la source
fade_out_Image.animate().alpha(0f).setDuration(100L).withEndAction {fade_out_Image.visibility = View.GONE}.start()