android触摸事件分发与处理简述
2017-12-14 11:17
351 查看
android触摸事件分发与处理
android的分发机制:由父控件判断是否拦截,如果不拦截事件,则继续分发到子控件,然后一直分发下去。
处理:与分发相反,由子控件先处理事件,如果子控件不处理,则交给父控件处理,一直向上传递,直到那个控件处理了触摸事件
相关方法:
Boolean dispatchTouchEvent(MotionEvent ev)接收到触摸事件时,是否分发事件到下面的view,返回true分发触摸事件;不分发返回false,下面的view就拿不到事件
Boolean onInterceptTouchEvent(MotionEvent ev)接收到触摸事件时,是否拦截事件,返回true拦截,则调用onTouchEvent方法处理事件;返回false,继续向子控件传
Boolean onTouchEvent(View v,MotionEvent event)是否响应事件,返回true,响应;返回false不响应
这个方法是基于回调的
Boolean onTouch(View v,MotionEvent event)处理响应事件,当view调用了setOnTouchListener方法设置了触摸监听器,则事件响应的时候先调用onTouch方法
返回true,响应即事件被v消费onTouchEvent方法不执行;返回false时,不响应事件没有被消费而终止了,并调用onTouchEvent方法
这个方法是基于监听onTouchListener 的
void requestDisallowInterceptTouchEvent(Boolean disallowIntercept)请求父控件是否不拦截事件,返回true,不允许父控件的onInterceptTouchEvent调用;false 允许
事件是否被拦截,要看在当前父级阶段能否根据event事件找到消费此事件的控件,如果找到则返回true继续向下分发,否则处理
android的分发机制:由父控件判断是否拦截,如果不拦截事件,则继续分发到子控件,然后一直分发下去。
处理:与分发相反,由子控件先处理事件,如果子控件不处理,则交给父控件处理,一直向上传递,直到那个控件处理了触摸事件
相关方法:
Boolean dispatchTouchEvent(MotionEvent ev)接收到触摸事件时,是否分发事件到下面的view,返回true分发触摸事件;不分发返回false,下面的view就拿不到事件
Boolean onInterceptTouchEvent(MotionEvent ev)接收到触摸事件时,是否拦截事件,返回true拦截,则调用onTouchEvent方法处理事件;返回false,继续向子控件传
Boolean onTouchEvent(View v,MotionEvent event)是否响应事件,返回true,响应;返回false不响应
这个方法是基于回调的
Boolean onTouch(View v,MotionEvent event)处理响应事件,当view调用了setOnTouchListener方法设置了触摸监听器,则事件响应的时候先调用onTouch方法
返回true,响应即事件被v消费onTouchEvent方法不执行;返回false时,不响应事件没有被消费而终止了,并调用onTouchEvent方法
这个方法是基于监听onTouchListener 的
void requestDisallowInterceptTouchEvent(Boolean disallowIntercept)请求父控件是否不拦截事件,返回true,不允许父控件的onInterceptTouchEvent调用;false 允许
事件是否被拦截,要看在当前父级阶段能否根据event事件找到消费此事件的控件,如果找到则返回true继续向下分发,否则处理
相关文章推荐
- android触摸事件分发与处理简述
- android面试题之触摸事件分发与处理简述
- Android触摸事件分发处理机制详解与源码分析一(View篇)
- android触摸事件的分发和处理
- android 屏幕触摸事件的分发与处理
- Android触摸事件的分发处理
- Android 触摸事件的分发与处理流程:onInterceptTouchEvent和onTouchEvent
- Android触摸事件的分发、拦截、处理
- android 屏幕触摸事件的分发与处理
- Android 多个事件分发和处理
- android触摸事件分发机制
- Android自定义控件系列 十:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- Android - 图片的处理,触摸监听事件,音乐播放,SoundPool,VideoView,视频播放,SurfaceView,拍照录像,传感器
- android中的触摸事件处理过程详解
- 浅谈android 点击事件分发处理流程
- Android中单个View的触摸事件分发机制
- 从源码角度分析android事件分发处理机制
- android 在ViewGroup中处理触摸事件 [Managing Touch Events in a ViewGroup]
- Android WebKit消息处理(二)Touch事件的分发处理
- Android触摸事件分发机制