Android 查看动画不';不要改变触摸区域
TranslateAnimation之后,视图上的OnClickListener不会被翻译。我尝试在自定义LinearLayout中重写getHitRect,但没有成功。我还尝试使用touchdelegate和在整个互联网上找到的所有其他建议,但没有成功:) 请帮帮我:)Android 查看动画不';不要改变触摸区域,android,animation,touch,bounds,Android,Animation,Touch,Bounds,TranslateAnimation之后,视图上的OnClickListener不会被翻译。我尝试在自定义LinearLayout中重写getHitRect,但没有成功。我还尝试使用touchdelegate和在整个互联网上找到的所有其他建议,但没有成功:) 请帮帮我:) Julien如果我正确理解了您的问题,您希望在翻译后单击某个内容,但它并没有注册某个内容的onTouch。出现此问题是因为TranslateAnimation实际上不移动对象,只移动屏幕上的像素。如果触摸物品所在的区域,您将调
Julien如果我正确理解了您的问题,您希望在翻译后单击某个内容,但它并没有注册某个内容的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);
您可能应该将其放在
onAnimationEnd
或onAnimationStart
方法中。希望这能有所帮助。谢谢,这看起来很有趣,但我的视图在动画结束时用你的代码片段消失了……你是否保留了FillAfterrue部分好的,我用这段代码得到了它。但是,在动画结束时,它会闪烁,因为更改左边框时地图视图的大小会调整。你有避免调整大小的建议吗?它不应该调整任何大小,但我从未移动过地图视图。我不知道为什么会发生这种情况。我想各种布局都被调整了大小。实际上,新的宽度是displayWidth减去newLeftMargin。
MarginLayoutParams marginParams = new MarginLayoutParams(someobject.getLayoutParams());
marginParams.setMargins(xx, xx, xx, xx);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(marginParams);
someobject.setLayoutParams(layoutParams);