事件分发的几个主要方法与其返回值的意义
来源:互联网 发布:皮影客动画软件下载 编辑:程序博客网 时间:2024/06/07 05:58
本篇短文只是针对几个事件分发方法的返回值做解释,详细的事件分发学习需搜索大神的文章(网上有很多)。
事件分发的几个主要方法有:
dispatchOnTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
一、dispatchOnTouchEvent()的三个返回值:
1.true 表示这个事件被当前的View消费,会传递给当前View的onInterceptTouchEvent方法处理。
2.false 表示这个事件不会再往上(内)层的View传递了,而是直接交给下(外)层View的onTouchEvent()去处理。
3.super.dispatchOnTouchEvent()返回super.dispatchOnTouchEvent()会将此事件传递给上(内)层View的 dispatchOnTouchEvent去处理。
总结:dispatchOnTouchEvent的三个返回值中,除了super.dispatchOnTouchEvent()会继续传递下去,其它的返回值都不会继续传递。
二、onInterceptTouchEvent()的三个返回值:
(注:View没有onInterceptTouchEvent方法,ViewGroup才会有)
1.true 按下去的down事件被onInterceptTouchEvent处理完之后返回true,之后的move、up等方法就不会交由onInterceptTouchEvent处理,而是全部(包括down事件)全部交由该层的onTouchEvent去处理。这样,目标View就接收不到任何事件。
2.false 按下去的down事件被onInterceptTouchEvent处理完之后返回false,之后的move、up等方法会继续交由onInterceptTouchEvent处理,然后全部(包括down事件)往下传递,直到交由目标View的onTouchEvent去处理。
3.super.onInterceptTouchEvent()与返回false一样。
三、onTouchEvent()的三个返回值:
1.false如果最终需要处理事件的View的onTouchEvent()返回了false,那么该事件将被传递至其上一层次的View的onTouchEvent()处理。
2.true如果最终需要处理事件的View的onTouchEvent()返回了true,那么后续事件将可以继续传递给该View的onTouchEvent()处理。
3.super.onTouchEvent()与返回true一样。
- 事件分发的几个主要方法与其返回值的意义
- 黑盒测试与其几个主要的方法
- 存储过程的三种返回值与其获得方法
- session的几个主要方法
- sqlite3的几个主要方法
- session的几个主要方法
- Session的几个主要方法
- Session的几个主要方法
- C# 窗体的几个主要事件
- Iterator的几个方法及意义
- GetLastError返回值的意义
- mysql_errno返回值的意义
- mysql_errno返回值的意义
- GetLastError()返回值的意义
- GetLastError返回值的意义
- GetLastError()返回值的意义
- GetLastError()返回值的意义
- GetLastError()返回值的意义
- groovy闭包基本用法
- java程序员应该知道的10个调试技巧
- H5 用户注册页面
- 六、STL的数值计算---数组(向量)运算---gslice类和gslice_array类模板
- 微信小程序商店域名由wxapp.dreawer.com永久更换为:store.dreawer.com
- 事件分发的几个主要方法与其返回值的意义
- javascript中escape()、unescape()、encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()比较
- 图的遍历
- 六、STL的数值计算---数组(向量)运算---mask_array类
- 网易笔试在线编程_ 操作序列
- Oracle学习笔记day02——用户
- 为ElasticSearch添加HTTP基本认证(head,bigdesk等插件增加登陆机制)
- cent os 挂盘
- Java之HashMap学习