Android Touch事件传递机制

Android Touch事件传递机制,第1张

Android Touch事件传递机制

在我们点击屏幕时,会有下列事件发生:Activity调用dispathTouchEvent()方法,把事件传递给Window;Window再将事件交给DecorView(DecorView是View的根布局);DecorView再传递给ViewGroup;

Activity ——> Window ——> DecorView ——> ViewGroup——> View

事件分发的主要有三个关键方法dispatchTouchEvent() 分发onInterceptTouchEvent() 拦截 ,只有ViewGroup独有此方法onTouchEvent() 处理触摸事件

Activity首先调用dispathTouchEvent()进行分发,接着调用super向下传递

ViewGroup首先调用dispathTouchEvent()进行分发,接着会调用onInterceptTouchEvent()(拦截事件)。若拦截事件返回为true,表示拦截,事件不会向下层的ViewGroup或者View传递;false,表示不拦截,继续分发事件。默认是false,需要提醒一下,View是没有onInterceptTouchEvent()方法的

事件在ViewGroup和ViewGroup、ViewGroup和View之间进行传递,最终到达View;

View调用dispathTouchEvent()方法,然后在onTouchEvent()进行处理事件;onTouchEvent() 返回true,表示消耗此事件,不再向下传递;返回false,表示不消耗事件,交回上层处理。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4829942.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-10
下一篇2022-11-10

发表评论

登录后才能评论

评论列表(0条)

    保存