事件分发
来源:互联网 发布:姜峰淘宝的手机怎么样 编辑:程序博客网 时间:2024/05/16 05:17
1.触摸事件的ACTION
ACTION_DOWN:手指触摸屏幕最早触发一个ACTION
ACTION_MOVE:
ACTION_UP:
2.触摸事件涉及到的控件类型:
Activity:最先获取到触摸事件的控件
ViewGroup:容器控件(Relativilayout,LinearLayout等)
子view:不能放置控件的控件(TextView,Button等)
3.触摸事件的传递方向:
Activity==》ViewGroup==》子view==》ViewGroup==>Activity
4.触摸事件传递时涉及到的方法:
dispatchTouchEvent:事件分发,具有事件分发和消费的功能
onInterceptTouchEvent:事件拦截,具有事件拦截的功能,没有消费功能
onTouchEvent:事件响应,具有事件消费的功能
5.触摸事件返回值对事件的影响
dispatchTouchEvent:
true:会消费掉当前事件,事件将不会继续向下传递
false:不会消费当前事件,并且会将当前事件分发到上一层控件的onTouchEvent中
super:按照默认情况走完整个流程(具体控件,具体分析)
onInterceptTouchEvent:
true:会拦截所有子控件的事件,并且直接传递到自己的onTouchEvent中
false:按照默认情况走完整个流程(不会对事件的走向产生影响)
super:按照默认情况走完整个流程(具体控件,具体分析)
onTouchEvent:
true:会消费掉当前事件,事件将不会继续向下传递
false:按照默认情况走完整个流程(不会对事件的走向产生影响)
super:按照默认情况走完整个流程(具体控件,具体分析)‘
1.触摸事件的ACTION
ACTION_DOWN:手指触摸屏幕最早触发一个ACTION
ACTION_MOVE:
ACTION_UP:
2.触摸事件涉及到的控件类型:
Activity:最先获取到触摸事件的控件
ViewGroup:容器控件(Relativilayout,LinearLayout等)
子view:不能放置控件的控件(TextView,Button等)
3.触摸事件的传递方向:
Activity==》ViewGroup==》子view==》ViewGroup==>Activity
4.触摸事件传递时涉及到的方法:
dispatchTouchEvent:事件分发,具有事件分发和消费的功能
onInterceptTouchEvent:事件拦截,具有事件拦截的功能,没有消费功能
onTouchEvent:事件响应,具有事件消费的功能
5.触摸事件返回值对事件的影响
dispatchTouchEvent:
true:会消费掉当前事件,事件将不会继续向下传递
false:不会消费当前事件,并且会将当前事件分发到上一层控件的onTouchEvent中
super:按照默认情况走完整个流程(具体控件,具体分析)
onInterceptTouchEvent:
true:会拦截所有子控件的事件,并且直接传递到自己的onTouchEvent中
false:按照默认情况走完整个流程(不会对事件的走向产生影响)
super:按照默认情况走完整个流程(具体控件,具体分析)
onTouchEvent:
true:会消费掉当前事件,事件将不会继续向下传递
false:按照默认情况走完整个流程(不会对事件的走向产生影响)
super:按照默认情况走完整个流程(具体控件,具体分析)
个人总结
首先事件是从最外层的Activity传递过来,viewGroup会以此把事件遍历给每一个子控件、如果子控件也没有消费掉,则会,把事件依次返回
给父控件、最后传给Activity。
如果viewGroup的dispatchTouchEvent返回true,那么它就不会向下分发事件、会自己消费事件,viewGroup的dispatchTouchEvent的ACTION_UP会执行,事件止于viewGroup的dispatchTouchEvent,
如果viewGroup的dispatchTouchEvent返回false,它会向下分发事件,下面执行onInterceptTouchEvent事件
true:两个作用。1,拦截事件,事件不会传递给子控件,2、自己消费事件、会执行自己的onTouchEvent();
false: 不会拦截事件、事件向子控件传递。
如果传递到子控件 子控件 onTouchEvent();返回true,则会消费掉事件。
如果给一个view设置了onTrouch()事件,这个onTouch事件 是先于onTouchEvent执行的,如果onTrouch()返回true,则不会,执行
onTouchEvent(),onClick()又是依赖于onTouchEvent(),所以onClick()也不会执行。只有onTrouch()返回false,才会执行
onTouchEvent,onTouchEvent(),返回true,才会执行view的onClick()时间。
1.触摸事件的ACTION
ACTION_DOWN:手指触摸屏幕最早触发一个ACTION
ACTION_MOVE:
ACTION_UP:
2.触摸事件涉及到的控件类型:
Activity:最先获取到触摸事件的控件
ViewGroup:容器控件(Relativilayout,LinearLayout等)
子view:不能放置控件的控件(TextView,Button等)
3.触摸事件的传递方向:
Activity==》ViewGroup==》子view==》ViewGroup==>Activity
4.触摸事件传递时涉及到的方法:
dispatchTouchEvent:事件分发,具有事件分发和消费的功能
onInterceptTouchEvent:事件拦截,具有事件拦截的功能,没有消费功能
onTouchEvent:事件响应,具有事件消费的功能
5.触摸事件返回值对事件的影响
dispatchTouchEvent:
true:会消费掉当前事件,事件将不会继续向下传递
false:不会消费当前事件,并且会将当前事件分发到上一层控件的onTouchEvent中
super:按照默认情况走完整个流程(具体控件,具体分析)
onInterceptTouchEvent:
true:会拦截所有子控件的事件,并且直接传递到自己的onTouchEvent中
false:按照默认情况走完整个流程(不会对事件的走向产生影响)
super:按照默认情况走完整个流程(具体控件,具体分析)
onTouchEvent:
true:会消费掉当前事件,事件将不会继续向下传递
false:按照默认情况走完整个流程(不会对事件的走向产生影响)
super:按照默认情况走完整个流程(具体控件,具体分析)
0 0
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- NumPy简明教程(二、数组2)
- [Leetcode]10. Regular Expression Matching
- linux下的top命令详解
- 图像高斯模糊算法
- 裴蜀定理
- 事件分发
- java中关于类、面向对象的简单介绍
- leetcode 135 candy 97 Interleaving String 316 Remove Duplicate Letters
- 【计算机网络-2】 【第一章】SDU与PDU 笔记
- C++常对象,常变量,常成员函数详解(含添加内容)
- HDU 5821-A - Ball-贪心
- hdoj 5620 KK's Steel (数学思维,那波婓切)
- JS中mouseover和mouseout多次触发问题如何解决
- CI的验证码代替类库(ci怎么加入验证码)