美文网首页
Android View 事件分发机制源码解析

Android View 事件分发机制源码解析

作者: 噜噜丶 | 来源:发表于2018-04-06 21:56 被阅读0次

简述

点击事件的传递顺序为:Activity -> Window -> View
主要的函数为:dispatchTouchEvent -> onInterceptTouchEvent -> onTouchEvent

源码解析

那么我们先从Activity来看
当手机点击屏幕的时候,首先会触发Activity的dispatchTouchEvent 方法

public boolean dispatchTouchEvent(MotionEvent ev) {
        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
            onUserInteraction();   //activity在栈顶时,用户对手机:触屏点击,按home,back,menu键都会触发此方法
        }
        if (getWindow().superDispatchTouchEvent(ev)) {
            return true;
        }
        return onTouchEvent(ev);
    }

就俩个if判断,上面那个看名字跟我们需要看的东西没什么关联,那么我们来到下面这个if判断,getWindow().superDispatchTouchEvent(ev)我们跟进去看这段
首先getWindow(),在我们看过setContentView的源码之后我们知道这个东西的实例是PhoneWindow得来的,那么我们来到PhoneWindow下的superDispatchTouchEvent

public boolean superDispatchTouchEvent(MotionEvent event) {
        return mDecor.superDispatchTouchEvent(event);   //mDecor是什么东西
    }
//DecorView.java下的
public boolean superDispatchTouchEvent(MotionEvent event) {
        return super.dispatchTouchEvent(event);
    }

其实,mDecor这个东西在看过setContentView的源码之后也知道,这个东西其实就是在我们每次调用setContentView的时候,会先添加一个R.id.content的布局,然后再将我们的布局添加上去,在这里的mDecor也就是我们的最顶级的View,继承于FrameLayout,来到DecorView下的superDispatchTouchEvent,也是调用父类的dispatchTouchEvent,前面说到DecorView是继承于FrameLayout的,那么自然就调用到ViewGroup的dispatchTouchEvent,到这里点击事件就从Activity传递到ViewGroup去了。


相关文章

  • Android事件分发学习路线

    Android事件分发机制,大表哥带你慢慢深入(图解很赞) Android View 事件分发机制源码解析(鸿洋写...

  • Android 事件分发机制

    搬砖参考一文读懂Android View事件分发机制Android事件分发机制完全解析,带你从源码的角度彻底理解(...

  • Android 事件分发机制源码解析-ViewGroup层

    在上篇文章中我们分析了view的事件分发机制《Android 事件分发机制源码解析-view层》,在本篇文章中我们...

  • Android View 事件分发机制

    本文参考【张鸿洋的博客】的 Android View 事件分发机制 源码解析 (上) Android ViewGr...

  • Android事件分发机制完全解析

    Android事件分发机制完全解析,带你从源码的角度彻底理解(上)Android事件分发机制完全解析,带你从源码的...

  • Android View 事件分发机制 源码解析

    标签: Android 源码解析 View 关于View的事件分发机制,网上有不少好文。基本上的模式都是:总体概括...

  • Android 事件分发机制源码

    Android 事件分发机制源码 Android,事件机制,Android事件分发机制源码 Android Tou...

  • 有趣的链接

    Android事件分析 可能是讲解Android事件分发最好的文章 Android事件分发机制完全解析,带你从源码...

  • View事件分发学习笔记

    首先推荐郭霖的真正的通俗易懂的View的事件分发文章: Android事件分发机制完全解析,带你从源码的角度彻底理...

  • View事件分发机制

    前言 Android源码分析之View系列之事件分发机制 同步至个人博客 正文 一. 概述 View的触摸事件分发...

网友评论

      本文标题:Android View 事件分发机制源码解析

      本文链接:https://www.haomeiwen.com/subject/imtehftx.html