Tengo una animación de fadeout en una vista (que está dentro de un fragmento), y cada vez que ocurre la animación, una vez que termina, la vista se vuelve a dibujar nuevamente. Encontré un trabajo alrededor haciendo view.SetVisibility(View.GONE)
. Pero no espera a que termine la animación. Me gustaría ejecutar este código de setVisibility solo después de que la animación haya terminado. ¿Cuál es la mejor manera de hacer eso?Evento de animación final android
Respuesta
Puede añadir oyente Animación a su objeto de animación como
anim.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
}
});
Si desea evitar que la animación de fadeout comience de nuevo mientras la animación está en progreso, use 'if (! anim.hasStarted() || anim.hasEnded())' para detectar si la animación está todavía corriendo. – theczechsensation
Simplemente tome su objeto de animación y añadir oyente animación a la misma. Aquí es el código de ejemplo:
rotateAnimation.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
**// WRITE HERE WHATEVER YOU WANT ON THE COMPLETION OF THE ANIMATION**
}
});
funcionalmente la misma que la respuesta aceptada, pero de una forma mucho más concisa:
/* Add/Remove any animation parameter */
theView.animate().alpha(0).setDuration(2000).withEndAction(new Runnable() {
@Override
public void run() {
theView.setVisibility(View.GONE);
}
});
Enjoy :)
Transparente y de una sola línea. ¡La mejor respuesta! Puede simplificarse con el uso de lambda '.withEndAction (() -> theView.setVisibility (View.GONE));' – theBugger
solo de esta manera con animaciones personalizadas ... gracias hermano –
Tenga en cuenta que este es el nivel de API 16 (4.1) y superior. – Tommie
- 1. ¿Cómo obtener el evento final de CATransición/Animación?
- 2. Dejar una animación de Android en su estado final
- 3. cómo comenzar una animación al final de otra animación?
- 4. ¿Se une al evento final de animación CSS personalizado con jQuery o JavaScript?
- 5. Android: ¿Animación de desplazamiento?
- 6. Android. Rendimiento de animación
- 7. Android Arrastra/Animación de Vistas
- 8. Android: dicha animación usando XML para la animación en Android
- 9. secuencia de animación de Android
- 10. Android ui elemento animación
- 11. Animación Android Listener
- 12. Android Translate Animación
- 13. Android animación ViewPager
- 14. animación en android
- 15. Android ListView Seleccionar animación
- 16. Android carga la animación
- 17. Animación personalizada en Android
- 18. Android: ViewFlipper animación
- 19. página de Android animación Curl
- 20. GWT El valor final de la animación no se respeta
- 21. Cómo capturar un final de animación en deleteRowsAtIndexPaths
- 22. Android NYTimes Flagelo Animación/Gesto
- 23. Deslizar expandir animación en android
- 24. Fragmento animación personalizada transacción - Android
- 25. Activación de una animación de un evento utilizando MVVM
- 26. Problemas de XML de animación de Android
- 27. tipos de técnicas de animación en android?
- 28. Animación de color de forma en Android
- 29. Android: Animación de traducción y rotación simultáneamente
- 30. Android y reproducción de animación SVG
publicar su código cómo se está mostrando la animación .... –