我有一个按钮和附加在上面的OnTouchListener。如何判断用户按下按钮时发生的动作(motion)是在按钮内还是外部?event.getAction() 和 event.getActionMasked() 都只返回0、1或2,分别表示ActionDown、ActionUp和ActionMove。有一个常量MotionEvent.ACTION_OUTSIDE,值为4,但即使我将触摸拖到按钮外面,仍然无法收到它,而是从两种方法中都收到2。问题出在哪里?
更新:我找到了一个好的解决办法——在ACTION_UP之后检查视图的焦点状态。如果没有焦点,那么意味着移动事件发生在视图之外。