查看动画不会改变触摸区域

时间:2012-04-21 20:47:48

标签: android animation touch bounds

在TranslateAnimation之后,翻译的视图上的OnClickListener未翻译。我尝试在自定义LinearLayout中覆盖getHitRect但没有成功。我还尝试使用touchdelegate以及在整个互联网上找到的所有其他建议,但没有成功:)

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

请帮帮我:)。

于连

1 个答案:

答案 0 :(得分:7)

如果我正确理解您的问题,您希望在翻译后点击某些内容并且不会注册该内容的onTouch。出现此问题的原因是TranslateAnimation实际上并不移动对象,只是移动屏幕上的像素。如果触摸项目所在的区域,您可以调用onTouch。要实际移动对象而不是屏幕上的像素,我建议使用此代码段:

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

您应该将其放在onAnimationEndonAnimationStart方法中。希望这会有所帮助。