android事件分发机制

素颜马尾好姑娘i 2022-07-14 12:17 340阅读 0赞

我们都知道一个控件有继承ViewGroup或View的两种类型。

ViewGroup可以作为父控件,所以他不但可以处理事件还可以分发事件,他的相关事件有三个:onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent。

View类型的可以作为子控件使用,他可以对传递到他这里的事件进行处理,他的相关事件只有两个:dispatchTouchEvent、onTouchEvent。

父控件的onInterceptTouchEvent 的作用是:是否对传递到他这里的事件进行拦截,常用处理滑动控件较多的时候滑动冲突。拦截之后就不会向下一级分发所拦截的事件了,在他自己的onTouchEvent中处理对应拦截的事件

父控件和子控件的dispatchTouchEvent主要作用是:分发事件。对分发到他们这里的事件选择处理还是不处理让他继续传递 。而真正分发事件的是父容器中的dispathchTouchEvent 事件 。所有事件都不做处理的情况下 只有 down事件 会自动向下分发,别的事件不会。

onTouchEvent:用来处理他们获取到的响应的事件。

常见的事件冲突问题一般都发生在父容器和子控件之间,或者是父父容器和子控件之间等,处理这种问题的思路:父容器的onInterceptTouchEvent对自己所必须的事件进行拦击不向下分发 子控件在dispatchTouchEvent中对自己想要的事件进行获取。

发表评论

表情:
评论列表 (有 0 条评论,340人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Android事件分发机制

    在触摸屏幕的过程中,要涉及到和控件的交互,如何处理多个控件之间的事件处理,保证正常的交互效果。我们今天来看事件分发机制。 零、事件分发的一些基础知识 什么是事件?

    相关 Android事件分发机制

    在触摸屏幕的过程中,要涉及到和控件的交互,如何处理多个控件之间的事件处理,保证正常的交互效果。我们今天来看事件分发机制。 零、事件分发的一些基础知识 什么是事件?

    相关 Android事件分发机制

    Android事件分发机制    就是一个触摸事件发生了,从一个窗口传递到下一个视图,在传递到另一个视图,最后被消费的过程,在android中还是比较复杂的传递流程:   

    相关 Android 事件分发机制

    前言 说到这个事件分发机制呢,我觉得一直以来都是我的弱项,可能它太抽象了,也与我在实际项目中没怎么使用到过,也没自定义过view有着很大的关系。虽然在面试过程中事件分发是必不

    相关 Android事件分发机制

    事件分发机制 在我们要详细了解这个东西的时候,首先要对它有一个最基础的认知,事件分发是干嘛的?分发的对象又是什么?接下来以一段伪代码来给大家解释什么是事件分发和它分发的对