在 TranslateAnimation 之后,已翻译 View 上的 OnClickListener 未翻译。我尝试在自定义 LinearLayout 中覆盖 getHitRect 但没有成功。我还尝试使用 touchdelegate 和在整个互联网上找到的所有其他建议,但都没有成功:)
TranslateAnimation open = new TranslateAnimation(0, displayWidth - ivTimelineWidth, 0, 0);
open.setDuration(1000);
open.setFillAfter(true);
llMapContent.startAnimation(open);
请帮助我:)
朱利安
最佳答案
如果我对你的问题的理解正确,你想在翻译后点击某物,而不是注册某物的 onTouch。出现此问题是因为 TranslateAnimation 实际上并不移动对象,只是移动屏幕上的像素。如果触摸项目所在的区域,您将调用 onTouch。要实际移动对象而不是屏幕上的像素,我建议使用以下代码 fragment :
MarginLayoutParams marginParams = new MarginLayoutParams(someobject.getLayoutParams());
marginParams.setMargins(xx, xx, xx, xx);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(marginParams);
someobject.setLayoutParams(layoutParams);
您应该将它放在 onAnimationEnd
或 onAnimationStart
方法中。希望这会有所帮助。
关于android - 观看动画不会改变触摸区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10262876/