在同一问题上发现了很多问题。
How to set OnClickListener on the ImageView after rotation animation
How to write the onclick listener for a view after animation?
我也有同样的问题,有什么建议吗?
答案 0 :(得分:3)
你应该写一个关于你的具体问题的简洁问题,而不仅仅是指出其他问题。与之相关的两个问题并不完全清楚。
我认为您的问题是在将动画(例如TranslateAnimation
)应用于View
后,View
不再响应其新位置的触摸事件。原因是因为View
没有在布局参数方面移动到新位置,而是应用了转换。
解决方案非常简单:动画完成后,立即将View
移动到新位置。您可以设置myAnimation.setFillAfter() = false
,并设置一个侦听器,以便在动画结束时将View
物理移动到目标位置:
myAmazingAnimation.setFillAfter() = false;
myAmazingAnimation.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationEnd(Animation animation) {
// Now actually move the View using LayoutParams
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
}
});
另一个变体是在应用动画之前在物理上移动View
,然后然后应用一个动画,使View
开始之前的位置和结束于0,0
。