Android事件分发机制
2016-05-23 17:50:50 20 举报
Android事件分发机制的大致流程。
作者其他创作
大纲/内容
View对点击事件的处理过程
事件传递
调用onTouch()
内部逻辑
decorView
调用
View.dispatchTouchEvent()
不调用onTouchEvent()
内部实现
decorView是当前界面的最底层容器,本质上是一个FrameLayout。
dispatchTouchEvent()
是否设置了OnTouchListener
点击事件产生(MotionEvent)
ViewGroup不拦截事件,返回false
如果设置了mOnClickListener
onTouchEvent()
解释
否
Activity的onTouchEvent()
调用onTouchEvent
是
顶级View(ViewGroup)
Activity
事件无人处理,所有子View的onTouchEvent()都返回了false
返回true
传递
返回false
ViewGroup拦截事件,返回true
事件由ViewGroup处理,是否设置mOnTouchListener?
调用子View的dispatchTouchEvent()
onTouch()
事件循环结束,点击事件被Activity处理
事件传递给子View
onInterceptTouchEvent()
子View的dispatchTouchEvent()均返回false
Window
调用onClick()
0 条评论
下一页