Skip to content
阅读进度

OnTouchListener onTouchEvent 和 onClick 有什么关系? ​

返回 Framework 与系统服务 目录

标准回答 ​

在 View 分发触摸时,满足条件的 OnTouchListener 通常先于 onTouchEvent 被调用。如果 OnTouchListener 返回 true,表示它消费了事件,默认 onTouchEvent 就可能不再处理,进而影响按压状态和点击。OnClickListener 不是独立的底层触摸入口,普通点击通常由 View 的触摸逻辑判断有效点击后调用 performClick 触发。自定义触摸处理中如果自己识别点击,应调用 performClick 以兼顾点击语义和无障碍,而不是直接执行某段点击业务。

延伸追问 ​

点击还可以由键盘、无障碍等途径触发,所以 onClick 不只来自触摸 UP。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。