View事件分发流程
2019-09-17 15:50:03 0 举报
View事件分发
作者其他创作
大纲/内容
默认返回值
将当前的dispatchTouchEvent返回false
分发
if()
dispatchTouchEvent 分发
如果想事件不向下传递,自己消费掉
返回true
事件也不再分发,直接由View的dispatchTouchEvent 进行消费,并且以后的事件同样直接被View的dispatchTouchEvent 方法消费了
如果View的dispatchTouchEvent 将事件传递给onTouchEvent方法,将根据onTouchEvent方法的返回值决定是否消费事件
拦截
将onInterceptTouchEvent返回false或者返回默认值
将onInterceptTouchEvent返回true
onTouchEvent消费
如果想事件不向下传递,返回给上层
将onTouchEvent返回默认或者返回false
如果想拦截事件,给自己的onTouchEvent方法消费
返回false
将onTouchEvent返回true
同默认方法一样,不再消费,返回给上层处理
View
如果想消费,不再返回
如果不拦截事件,默认向下传递
事件将不分发,直接返回给上层ViewGroup的onTouchEvent方法进行处理
默认返回super.onTouchEvent(event),默认不消费事件,事件将返回给上层ViewGroup的onTouchEvent方法处理
将当前的dispatchTouchEvent返回true
将事件消费,不再返回,以后其他事件同样被onTouchEvent方法消费
默认返回super.dispatchTouchEvent(ev),事件将分发下去,传递给View自己的onTouchEvent进行处理
如果不想消费,返回给上层
消费
0 条评论
下一页