【发布时间】:2012-09-17 16:18:34
【问题描述】:
我有一个 LinearLayout,我正在对其应用翻译动画。我在之前和之后填充动画。视觉上它工作正常。动画通过将视图平移到屏幕外而结束。但是,如果我在屏幕上单击一个 x,y 坐标,而该坐标恰好是视图在其动画期间的某个位置,则视图上的一个按钮会触发其单击侦听器。
我找到的唯一解决方案是添加一个动画侦听器,当动画结束时,将(现在看不见的)布局上的按钮标记为 visibility=gone,enabled=false。这看起来很奇怪——视图不再出现在屏幕上,但它仍在响应点击事件。这是众所周知的事情吗,我可能没有正确设置动画?
谢谢
----- 更新--------
我稍微重构了我的动画。我没有使用 animation.setFillAfter(true),而是在动画完成时将布局的可见性设置为 GONE。现在它在屏幕外时不会注册点击。仍然有兴趣知道这是否是已知的事情,因为不必添加动画侦听器等会更容易。
【问题讨论】:
-
是的,这是众所周知的事情。如果将 setFillAfter() 设置为 true 并转换视图,并且还向视图添加了点击侦听器,则视图不会在转换后的位置上获得点击,但原始 (x,y) 位置仍会收到点击。
-
好的,你可以添加一个答案,这样我就可以关闭它了吗?
标签: android