面试要点:事件分发机制
我想说的是 view 的 dispatchTouchEvent 这段源码一定要记住,不难.
阻断与.先判断有无OnTouchListener,然后判断是否可点击,然后判断onTouch事件返回值
public boolean dispatchTouchEvent(MotionEvent event) {
if (mOnTouchListener != null && (mViewFlags & ENABLED_MASK) == ENABLED &&
mOnTouchListener.onTouch(this, event)) {
return true;
}
return onTouchEvent(event);
}
然后是viewGroup这段源码:
disallowIntercept 为子控件设置值,默认为false 可以防止父控件拦截掉子控件的消息.
onInterceptTouchEvent 默认为false 不拦截
if (disallowIntercept || !onInterceptTouchEvent(ev)) {
child.dispatchTouchEvent(ev);
}
面试时 一问事件分发,直接给他讲源码.蹭蹭加分.
---------------------
作者:a31081314
来源:CSDN
原文:https://blog.csdn.net/a31081314/article/details/81666606
版权声明:本文为博主原创文章,转载请附上博文链接!

浙公网安备 33010602011771号