onInterceptTouchEvent是ViewGroup独有的触碰事件截取方法。默认返回值是false。晚上一般的解释是此方法返回true,则dispatchTouchEvent方法不继续下发,直接调用onTouchEvent方法。下面从简单的几行源码来具体分析一下:
<pre>
// Check for interception.final boolean intercepted;
if (actionMasked == MotionEvent.ACTION_DOWN || mFirstTouchTarget != null) {
final boolean disallowIntercept = (mGroupFlags & FLAG_DISALLOW_INTERCEPT) != 0;
if (!disallowIntercept) {
intercepted = onInterceptTouchEvent(ev);
ev.setAction(action); // restore action in case it was changed
} else {
intercepted = false;
}
} else {
// There are no touch targets and this action is not an initial down
// so this view group continues to intercept touches.
intercepted = true;
}
</pre>
(注:6.0版本源码ViewGroup类dispatchTouchEvent方法中,2102-2117行)
onInterceptTouchEvent调用情况分析
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 关于Android触摸事件机制 Android触摸事件机制,开发中都是老生常谈,但是惭愧的是,这么久开发,依然对A...
- 1. 概述 作为Android开发中最常见的一个控件,个人觉得有必要谈谈了。我们刚开始接触Android的时候...
- 前言 Android事件分发机制是Android开发者必须了解的基础 网上有大量关于Android事件分发机制的文...