} getListenerInfo().mOnClickListener = l; } 只有我们注册OnTouchListener时重写的
onTouch()办法中
返回false —> 履行onTouchEvent办法 —> 导致onClick()回调办法履行
返回true —>>
public boolean dispatchTouchEvent(MotionEvent ev) { final int action = ev.getAction(); final float xf = ev.getX(); final float yf = ev.getY(); final float scrolledXFloat = xf + mScrollX; final float scrolledYFloat = yf + mScrollY; final Rect frame = mTempRect; //这个值默认是false, 然后我们可以经由过程requestDisallowInterceptTouchEvent(boolean disallowIntercept)办法 //来改变disallowIntercept的值 boolean disallowIntercept = (mGroupFlags & FLAG_DISALLOW_INTERCEPT) != 0; //这里是ACTION_DOWN的处理逻辑 if (action == MotionEvent.ACTION_DOWN) { //清除mMotionTarget, 每次ACTION_DOWN都很设置mMotionTarget为null if (mMotionTarget != null) { mMotionTarget = null; } //disallowIntercept默认是false, 就看ViewGroup的onInterceptTouchEvent()办法 if (disallowIntercept || !onInterceptTouchEvent(ev)) { //第一点 ev.setAction(MotionEvent.ACTION_DOWN); final int scrolledXInt = (int) scrolledXFloat; final int scrolledYInt = (int) scrolledYFloat; final View[] children = mChildren; final
推荐阅读
AgentWeb是基于Android WebView一个功能完善小型浏览器库
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路!
Android 端AgentWeb 介绍AgentWeb是一个高度封装的 Android WebView ,简单易用 , 带有进度条 、 支撑文>>>详细阅读
本文标题:一篇文章彻底搞懂Android事件分发机制
地址:http://www.17bianji.com/lsqh/36325.html
1/2 1