【发布时间】:2012-07-15 01:38:40
【问题描述】:
我已使用 TranslateAnimation 将按钮从左向右移动,但在该按钮单击之后,listiner 不适用于新位置。
【问题讨论】:
标签: android
我已使用 TranslateAnimation 将按钮从左向右移动,但在该按钮单击之后,listiner 不适用于新位置。
【问题讨论】:
标签: android
当您使用TranslateAnimation 时,您的实际按钮位置不会改变。它只更新用于绘制按钮的Canvas 的转换矩阵。因此,您的按钮位于同一位置并从原始区域调度触摸事件,并且仅在新位置绘制。
【讨论】:
只需在代码中使用setFillAfter(true) 或在xml 中使用android:fillAfter。
http://developer.android.com/reference/android/view/animation/Animation.html#attr_android:fillAfter
http://developer.android.com/reference/android/view/animation/Animation.html#setFillAfter(boolean)
这里还有一个解决方案,在结束事件上使用动画并设置对象的布局。
另一方面,您可以使用两个按钮,一个是当前按钮,第二个按钮放置在动画的最后一个位置,直到动画结束才可见,在动画结束时只需将第一个按钮设置为不可见第二个可见。
【讨论】: