Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 查看动画不';不要改变触摸区域_Android_Animation_Touch_Bounds - Fatal编程技术网

Android 查看动画不';不要改变触摸区域

Android 查看动画不';不要改变触摸区域,android,animation,touch,bounds,Android,Animation,Touch,Bounds,TranslateAnimation之后,视图上的OnClickListener不会被翻译。我尝试在自定义LinearLayout中重写getHitRect,但没有成功。我还尝试使用touchdelegate和在整个互联网上找到的所有其他建议,但没有成功:) 请帮帮我:) Julien如果我正确理解了您的问题,您希望在翻译后单击某个内容,但它并没有注册某个内容的onTouch。出现此问题是因为TranslateAnimation实际上不移动对象,只移动屏幕上的像素。如果触摸物品所在的区域,您将调

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

请帮帮我:)


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