在我的应用程序中,我想为按钮和其他充当按钮的视图添加一个简单的动画。
为此,我为所有视图设置了一个自定义 onTouchListener 并在它们上调用 startAnimation。
我的 onTouch 方法如下所示:
public boolean onTouch(View v, MotionEvent event) {
// Only show animation when enabled.
if (v.isEnabled()) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
v.startAnimation(shrink);
break;
case MotionEvent.ACTION_UP:
v.startAnimation(grow);
break;
}
}
return v.onTouchEvent(event);
}
这可以正常工作,因为当用户按下按钮时视图被调整为较小的尺寸,并在用户松开手指时返回到原始尺寸。
然而,由于某种原因,位于触摸按钮附近的其他按钮也会获得 UP 事件,因此它们也会获得一个小的动画闪烁。
为什么会这样,更重要的是,我该如何防止这种恼人的行为?
编辑:只是为了清楚。邻居视图也注册到同一个侦听器实例,但我的手指没有触摸它们。