2012-02-12 18 views
5

Tengo una vista que se coloca totalmente fuera de la pantalla y estoy tratando de animarla en la pantalla.Vista de Android Animate desde fuera de la pantalla no funciona

cuando llamo:

view.startAnimation(tA); 

no pasa nada, tA.initialize y tA.applyTransformation nunca son llamados.

Si muevo la vista para que cualquier parte de ella sea visible antes de comenzar la animación, entonces la animación funciona correctamente.

¿Qué impide que una vista se vea animada cuando se encuentra fuera de la Vista principal?

Respuesta

1

Según mis conocimientos, al investigar el mismo problema, las animaciones de Android no funcionan bien cuando se proporcionan con coordenadas fuera de pantalla para su inicio o finalización.

Hay un cuadro de diálogo en los foros de Android sobre este error que se ha abordado, pero todavía estoy experimentando problemas en 4.2.

Editar:

Pensándolo bien, me acaba de ejecutar a través de este answer y proporciona una alternativa de trabajo si se puede utilizar las API más recientes (ObjectAnimator).

View view = this; 
ObjectAnimator anim = ObjectAnimator.ofFloat(view, "y", 0, 100); 
anim.setDuration(super.animationDuration()); 
anim.start(); 

Cuando las propiedades de ObjectAnimator.ofFloat(view, "y", 0, 100); son

ObjectAnimator.ofFloat(Object objBeingAnimated, String propertyBeingAnimated, float startValue, float endValue) 
0

encontré this answer usando ValueAnimator modificar el MarginLayoutParams.topMargin (en mi caso) en onAnimationUpdate(), que ha solucionado el problema. Mi vista comienza con su margen establecido para que la Vista esté fuera de pantalla.

El enfoque ObjectAnimator fue prometedor pero no funcionó para mí, tenía el mismo problema de corte para las vistas fuera de pantalla que obtuve con TranslateAnimation.

Cuestiones relacionadas