You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OnTouchListener的onTouch返回false未阻止onTouchEvent调用,为何普遍认为可以?

View.OnTouchListener的onTouch返回值逻辑澄清

官方文档对View.OnTouchListener的onTouch方法返回值的逻辑表述模糊,部分Stack Overflow回答称:

若返回false,事件会传递给父视图处理。

但实际测试后发现完全不是这么回事:

  • 给Button、RecyclerView等任意View设置setOnTouchListener,让onTouch返回false时,该View仍能正常响应事件——这说明事件并没有流向父视图,而是被当前View的onTouchEvent方法消费了。
  • 当onTouch返回true时,事件会被立即消费,View无法呈现预期的默认行为(比如Button的点击反馈、RecyclerView的滚动)。

之前有个普遍误解:认为onTouch返回false会阻止onTouchEvent的调用,但实际测试证明这是错误的——返回false时,onTouchEvent依然会被触发,事件会交由View自身的默认事件处理逻辑来处理。

内容的提问来源于stack exchange,提问作者xidsyed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:42:36