Android 事件分发
2017-09-13 11:55:05 0 举报
Android事件分发详细总流程
作者其他创作
大纲/内容
dispatchTransformedTouchEvent(childn)
建立点击目标链表并初始化mFirstTouchTarget
li.mOnClickListener.onClick()
child == null
result = true
return child.dispatchTouchEvent(event)
true
return true
设置标志位 intercepted = false
disallowIntercept
false
return result
View.java
ACTION_DOWN
ViewGroup.java
return dispatchTouchEvent()
return onTouchEvent
在requestDisallowInterceptTouchEvent(boolean)方法中赋值
!intercepted
break
循环所有子View
重新排序子控件
return super.dispatchTouchEvent(event)
mFirstTouchTarget == null
Activity.java
case ACTION_UP: performClick()
!result && onTouchEvent()
屏幕触摸事件开始
return handled
buildTouchDispatchChildList
return superDispatchTouchEvent
PhoneWindow.java
intercepted = onInterceptTouchEvent(ev)
dispatchTouchEvent
收藏
收藏
0 条评论
下一页