这是onInterceptTouchEvent()注释的一部分:


  如果您从此处返回true,则不会收到任何
   以下事件:目标视图将接收相同的事件,但
  动作{@link MotionEvent#ACTION_CANCEL},以及所有其他动作
   事件将传递到您的onTouchEvent()方法,不再
  出现在这里。


它说,如果您在父级的onInterceptTouchEvent()方法中返回true,则您的孩子将收到MotionEvent.ACTION_CANCEL事件。为了证明孩子已收到log.d事件,我在哪里可以放置MotionEvent.ACTION_CANCEL捕获MotionEvent.ACTION_CANCEL

最佳答案

您可以在孩子的onTouchEvent()中捕获它。如果该子视图不是自定义视图,则可以在子视图上设置OnTouchListener()并将其捕获在onTouch()回调中。

09-26 06:01