dispatchTouchEvent onInterceptTouchEvent onTouchEvent区分

  1. dispatchTouchEvent 是处理触摸事件分发,执行super.dispatchTouchEvent(ev),事件向下分发。

  2. onInterceptTouchEvent是ViewGroup提供的方法,默认返回false,返回true表示拦截。

3. onTouchEvent是View中提供的方法,ViewGroup也有这个方法,view中不提供onInterceptTouchEvent。view中默认返回true,表示消费了这个事件。

时间: 2024-08-07 16:43:03

dispatchTouchEvent onInterceptTouchEvent onTouchEvent区分的相关文章

Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的理解

[转]http://blog.csdn.net/guitk/article/details/7057155 onInterceptTouchEvent用于改变事件的传递方向.决定传递方向的是返回值,返回为false时事件会传递给子控件,返回值为true时事件会传递给当前控件的onTouchEvent(),这就是所谓的Intercept(拦截). [tisa ps:正确的使用方法是,在此方法内仅判断事件是否需要拦截,然后返回.即便需要拦截也应该直接返回true,然后由onTouchEvent方法进

DispatchTouchEvent & OnInterceptTouchEvent & onTouchEvent的含义和区别

1.DispatchTouchEvent Pass the touch screen motion event down to the target view, or this view if it is the target. 传递触摸事件到目标视图,或者他就是目标视图. 情况1:return true 则事件只会在当前方法内消耗掉,且不会向下传递,最后传给Activity. 情况2:return false   则事件只会在当前方法内消耗且不会向下传递,最后传给Activity. 但是不同于

Android dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent详解

之前遇到事件分发,去网上找相关文章...感觉都没把这几个的关系说明白.研究了几篇不错的文章,今天在这整理一下,希望对大家有所帮助. 首先你要知道一点,当你触摸一个控件的时候,你就会调用该控件(或它的父类)的dispatchTouchEvent方法.那我们就来看一下dispatchTouchEvent方法的源码: public boolean dispatchTouchEvent(MotionEvent event) { if (mOnTouchListener != null && (mV

dispatchTouchEvent(),onInterceptTouchEvent()和onTouchEvent()的事件分发

在布局文件里,假设有3层 , 一层是button, textview等常见组件, 二层是嵌套的RelativeLayout, 三层是LinearLayout, 而一个触摸屏幕的事件无非就是ACTION_DOWN, ACTION_MOVE, ACTION_UP.  而手指从按下到松开离开屏幕, 其实事件分发的传递已经经过了这三层. 这里说下它的处理过程, 也算是巩固记忆了. 首先, dispatchTouchEvent(),onInterceptTouchEvent()和onTouchEvent(

事件分发系列—View中的dispatchTouchEvent和onTouchEvent分析

dispatchTouchEvent 话不多说直接上源码 /** * Pass the touch screen motion event down to the target view, or this * view if it is the target. * 将屏幕的按压事件传递给目标view,或者当前view即目标view * * @param event The motion event to be dispatched. * 需要分发的事件 * * @return True if t

onInterceptTouchEvent onTouchEvent 的坑 坑死了

简单来说,不想研究这个,坑死了. onInterceptTouchEvent 是从父级向子级传递. onTouchEvent 是从子级向父级传递. 它们两个相互不影响,onInterceptTouchEvent 先触发,onTouchEvent 后触发. onInterceptTouchEvent 是ViewGroup的事件. onTouchEvent 是View 的事件,如果一个View 不能再包含子View ,则它没有 onInterceptTouchEvent 事件. 事件触发顺序为 Mo

android onInterceptTouchEvent onTouchEvent

参考文档: http://blog.csdn.net/liutao5757124/article/details/6097125 首先,看Android的官方文档正解 onInterceptTouchEvent()与onTouchEvent()的机制: 1. down事件首先会传递到onInterceptTouchEvent()方法 2. 如果该ViewGroup的onInterceptTouchEvent()在接收到down事件处理完成之后return false, 那么后续的move, up

android面试题目

最近才开的博客,希望大家多多关注,andorid开发也做了3年有余了,也面试多家企业,借此机会分享一下,我们中遇到过的问题以及解决方案吧,希望能够对正在找工作的andoird程序员有一定的帮助.学完<andorid从零开始教程>+面试题目全理解,年薪20w以上绝对没问题. 特别献上整理过的50道面试题目 1.listView的优化方式 重用convertView viewHolder static class viewHolder 在列表里面有图片的情况下,监听滑动不加载图片 多个不同布局,可

ViewGroup源码解读

我们之前刚刚分析完事件传递机制和view的源码,如果没有看过的,建议看完View的事件拦截机制浅析以及View的事件源码解析.这次我们来分析下viewgroup的. 可能有人会想,怎么又是源码分析,肯定又是一大通.其实没你想的那么复杂.仔细分析一波就行了. 解读ViewGroup 我们都知道,一个事件完整的流程是从dispatchTouchevent–>onInterceptTouchevent–>onTouchEvent.我们先不说事件监听的问题.上述三个步骤就是正常一个点击的流程.前面我们