android - 观看动画不会改变触摸区域

标签 android animation touch bounds

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

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

关于android - 观看动画不会改变触摸区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10262876/

相关文章:

布局中定义的 Android EditText onClick 监听器因模糊异常而失败

java - 如何使用 AnimationDrawable 和 animation-list 创建顺序动画

android - 使用Gradle自定义 Lint

android - 迁移到 Androidx 后更改区域设置不起作用

java - 我想在单击时为 gridview 打开新 Activity

delphi - 在绘图项目中使用平板电脑

vue.js - 如何使用 Vue 处理触摸事件?

python - Matplotlib 动画 fill_between 形状

javascript - Fabric.js 函数将物体从 A 点移动到 B 点

android - 自定义 View 不响应触摸