View Touch 事件分发

Android 中Layout 继承 ViewGroup,布局中在嵌套view

点击事件分发流程是这样的:

ViewGroup.dispatchTouchEvent()   分发viewgroup及子view的点击事件

View.dispatchTouchEvent()  分发view的点击事件


换句话说点击事件的总入口是ViewGroup.dispatchTouchEvent(),返回值 true=接受持续不断的touch事件,false=只接受一次touch事件

ViewGroup.dispatchTouchEvent() 会调用ViewGroup.onInterceptTouchEvent()  询问是否需要拦截,true=ViewGroup.onTouch(), false=View.dispatchTouchEvent()

dispatchTouchEvent 的返回值 是综合处理 onIntercepTouchEvent() 和onTouchEvent后的结果


值得注意的是,继承ViewGroup及View后的事件分发是由父view分发的,需要调用super.dispatchTouchEvent()才能正常分发

你可能感兴趣的:(android)