2012-04-21 8 views
5

Después de una TranslateAnimation, el OnClickListener en vista traducido no está traducido. Intenté reemplazar getHitRect en LinearLayout personalizado pero sin éxito. También traté de usar un touchdelegate y todas las otras sugerencias que se encuentran en toda la Internet sin éxito :)Ver la animación no cambia el área táctil

TranslateAnimation open = new TranslateAnimation(0, displayWidth - ivTimelineWidth, 0, 0); 
open.setDuration(1000); 
open.setFillAfter(true); 
llMapContent.startAnimation(open); 

favor me ayude :)

Julien

Respuesta

7

Si yo soy la comprensión de su problema correctamente, quiere hacer clic en algo después de que ha sido traducido y no está registrando el toque de algo. Este problema ocurre porque TranslateAnimation en realidad no mueve el objeto, solo los píxeles en la pantalla. Llamarías a la función OnTouch si tocas el área donde estaba el artículo. Para mover realmente el objeto en lugar de los píxeles en la pantalla recomiendo el uso de este fragmento de código:

MarginLayoutParams marginParams = new MarginLayoutParams(someobject.getLayoutParams()); 
marginParams.setMargins(xx, xx, xx, xx); 
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(marginParams); 
someobject.setLayoutParams(layoutParams); 

Probablemente debería colocar esto en los métodos onAnimationEnd o onAnimationStart. Espero que esto ayude.

+0

Gracias, parece interessant pero mi vista desaparece al final de la animación con su fragmento de código ... – Jul

+0

guardó la parte fillAftertrue – testingtester

+0

Sí, lo guardé. – Jul

Cuestiones relacionadas