13.手势传递

图解 Android 事件分发机制

结论

  1. dispatchTouchEvent,onTouchEvent,
    return true是终结事件传递;
    return false 是回溯到父View的onTouchEvent方法。
  2. ACTION_MOVE、ACTION_UP总结:
    **ACTION_DOWN事件在哪个控件消费了(return true), 那么ACTION_MOVE和ACTION_UP就会从上往下(通过dispatchTouchEvent)做事件分发往下传,就只会传到这个控件,不会继续往下传,如果ACTION_DOWN事件是在dispatchTouchEvent消费,那么事件到此为止停止传递,如果ACTION_DOWN事件是在onTouchEvent消费的,那么会把ACTION_MOVE或ACTION_UP事件传给该控件的onTouchEvent处理并结束传递。

onInterceptTouchEvent()的作用以及何时会被调用
为什么onInterceptTouchEvent()方法只接收到来ACTION_DOWN事件?需要处理ACTION_MOVE,ACTION_UP等等事件吗?
当我们在onInterceptTouchEvent()方法中返回false,子View的onTouchEvent返回true的情况下,onInterceptTouchEvent方法才会收到后续的事件。
ViewGroup的onInterceptTouchEvent方法,onTouchEvent方法以及View的onTouchEvent方法之间的事件传递流程
onTouchEvent收到ACTION_DOWN,是否一定能收到ACTION_MOVE,ACTION_UP...? 收到了ACTION_MOVE,能否说明它已经收到过ACTION_DOWN?
让ViewGroup支持click事件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容