Android 中的触摸反馈的流程

触摸反馈的流程

Activity.dispatchTouchEvent()

-递归: ViewGroup(View).dispatchTouchEvent()

                      ViewGroup.onInterceptTouchEvent()

                       child.dispatchTouchEvent()

                      super.dispatchTouchEvent()

                               View.onTouchEvent()

-Activity.onTouchEvent()

View.dispatchTouchEvent()

         如果设置了 OnTouchListener,调⽤ OnTouchListener.onTouch()

         如果 OnTouchListener 消费了事件,返回 true

         如果 OnTouchListener 没有消费事件,继续调⽤⾃⼰的 onTouchEvent(),并返回和 onTouchEvent()相同的结果

         如果没有设置 OnTouchListener,同上


⾃定义 ViewGroup 的触摸反馈

除了重写 onTouchEvent() ,还需要重写 onInterceptTouchEvent()

onInterceptTouchEvent() 不⽤在第⼀时间返回 true,⽽是在任意⼀个事件⾥,需要拦截的时候返回 true 就⾏

在 onInterceptTouchEvent() 中除了判断拦截,还要做好拦截之后的⼯作的准备⼯作(主要和 onTouchEvent() 的代码逻辑⼀致)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容