5

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

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

请帮我 :)

朱利安

4

1 回答 1

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); 

您可能应该将它放在onAnimationEndoronAnimationStart方法中。希望这可以帮助。

于 2012-04-21T21:24:26.737 回答