多语言展示
当前在线:1255今日阅读:2今日分享:31

android 最全面的事件分发机制

Android事件分发机制一直都是一个麻烦点,很我开发者对此都一头雾水,下面用图文来解决下我的理解,希望这篇文章能够给你点不一样的见解。
工具/原料

android studio

方法/步骤
1

一、分发机制分别:Activity事件分发机制、ViewGroup事件分发机制、View事件分发机制,事件分发是dispatchTouchEvent,事件拦截是onInterceptTouchEvent,事件的响应是onTouchEvent。

2

二、编写ViewGroup的控件 继承LinearLayout 然后重写 dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent。在每个方法中都打印一下执行代码。如下图。

3

三、编写View的控件 继承Button 然后重写 dispatchTouchEvent,onTouchEvent。注意View是没有onInterceptTouchEvent拦截事件的。如下图。

4

四、首先看一下Activity的dispatchTouchEvent源码:上面这段代码,关键的就是:getWindow().superDispatchTouchEvent(ev)。如下图。

注意事项

请点个赞

推荐信息