Android巩固之事件分发机制
2024-09-03 23:47:18
https://www.cnblogs.com/liaojie970/p/5869152.html
onTouchEvent是真正用来进行业务逻辑处理的地方,返回true表示已经将该事件消费,返回false表明事件继续传递。
onInterceptTouchEvent是用来进行判断是否需要对事件进行拦截从而阻止其继续往子组件传递的,返回false表示无需拦截,则递归的调用子组件的dispatchTouchEvent
方法;返回true表示需要拦截,则直接调用本组件的onTouchEvent方法进行处理。
在父组件dispatchTouchEvent中有可能会调用三个方法:
1、本组件的onInterceptTouchEvent
2、子组件的dispatchTouchEvent
3、本组件的onTouchEvent
ViewGroup中dispatchTouchEvent()具体的执行逻辑:
1、首先执行本组件的onInterceptTouchEvent。如果返回false,表明无需拦截,则调用第二个方法,即子组件的dispatchTouchEvent方法;如果返回true,无需向子组件
传递,则直接调用本组件的onTouchEvent方法
2、第一步中如果需要向子组件传递事件。如果递归调用子组件的dispatchTouchEvent返回false,则调用本组件的onTouchEvent方法;如果返回true,则无需调用本组件的
onTouchEvent方法
3、根据前两步的执行结果,将该dispatchTouchEvent的返回值返回给父组件的dispatchTouchEvent方法。
最新文章
- ssh自动输入密码脚本 切换目录脚本
- STM32中断管理函数
- nodeJs中创建服务器
- iOS 全局断点崩溃
- linux异步通信之epoll【转】
- Laravel不同数据库的模型之间关联
- 为网站添加一个图标icon
- 关于CenttOS的防火墙问题
- PL/SQL执行计划查看
- 自定义django-admin命令
- 通过python操作GeoLite2-City.mmdb库将nginx日志访问IP转换为城市写入数据库
- Pandas三个数据结构
- Linux系统运维笔记(一),查看系统版本和设置系统时间
- ubuntu下gedit和vim输入中文和中文显示
- OS-96
- SQLServerException:将截断字符串或二进制数据的解决方法
- 美团客户端响应式框架EasyReact开源啦
- Android NDK开发-1-环境搭建
- UVAlive5713 Qin Shi Huang's National Road System【次小生成树】【DP】
- 关于docker的15个小tip