问:LinearLayout 里面嵌套Button,LinearLayout 设置了onClick 事件,但是Button 没有设置点击事件,当我点击Button 的时候,LinearLayout 的onClick 会不会执行?

答:不会执行,虽然View 的onTouch 对于Action_Down 事件,只要是ClickAble 的控件,默认是返回true,在Action_Up的时候,由于LinearLayout 没有拦截后续事件,所以后续所有的事件还是被Button 给消费了。所以,只有设置了Button的clickable 为false,这样点击Button 就不会消费事件。

从源码里面也会看到,就算是Button 处理了Action_Down,如果父容器对与后续的Action_MOVE 没有拦截,那么当Action_Up 的时候,就算Button 自己不处理,那么ViewGroup 也不会处理。

也就是如果在Action_Down 的时候,父亲不拦截事件,子View onTouchEvent 返回了true, 接着在
Action_Move 的时候,父亲还不拦截事件,那么Action_Up 事件 最终子View 有没有消费,父亲也不管了,只负责传递。

Action_Down 负责分发决定哪个控件处理本次事件,在Move 时,只可能存在拦截的可能,不存在再次分发事件的可能。一个View 在Activon_Down 的时候,可以返回true,表示我要处理这次事件,但是在Move 的时候也可以选择自己处理不处理。

Android 事件分发面试题2相关推荐

  1. 耗时118天爆肝【1296页】的“Android高级开发面试题”,终于成功上岸字节

    前言 本人16年毕业于一家普通二本,考研裂开了且没有实习经验,只做过两个项目,每天就是不断地投简历.刷面经,感觉自己都要抑郁了,最后勉强进入了一家学校合作的互联网公司,后面陆陆续续也换了几家公司,毕业 ...

  2. Android事件分发之ViewGroup篇 -- ViewGroup的dispatchTouchEvent、onTouchEvent、onInterceptTouchEvent之间关系

    Android事件分发之ViewGroup篇(FatherViewGroup) – ViewGroup的dispatchTouchEvent.onTouchEvent.onInterceptTouch ...

  3. Android事件分发之ACTION_CANCEL机制及作用

    目录 ACTION_CANCEL产生场景 ACTION_CANCEL作用 FLAG_DISALLOW_INTERCEPT的作用 如果要查看ACTION_MOVE与ACTION_UP的事件传递机制,查看 ...

  4. Android事件分发之ACTION_MOVE与ACTION_UP的传递机制

    目录 引言 ACTION_MOVE与ACTION_UP的传递机制 mFirstTouchTarget作用 mFirstTouchTarget为什么是链表结构 引言 关于Android事件分发机制网上相 ...

  5. Android软件开发面试题,安卓面试题库

    一.开始的开始 **Android框架体系架构(高级UI+FrameWork源码)**这块知识是现今使用者最多的,我们称之Android2013~2016年的技术,但是,即使是这样的技术,Androi ...

  6. Android-Notes|BottomNavigationView-爱上-Lottie,android高级开发面试题

    } 复制代码 封装个 BasicData,存放 App 内置的一些基本数据,这里主要针对 Lottie 文件: val mNavigationAnimationList = arrayListOf( ...

  7. Android软件开发面试题,Android入门

    前言 首先声明,楼主不是什么大牛,没有多牛逼的技术,只是公司扩招团队,有幸作为技术面试官,面试了这么多人之后的感想,希望对大家有一点点帮助. Java相关 容器(HashMap.HashSet.Lin ...

  8. Android中高级进阶开发面试题冲刺合集(四)

    以下主要针对往期收录的面试题进行一个分类归纳整理,方便大家统一回顾和参考.本篇是第四集~ 强调一下:因篇幅问题:文中只放部分内容,全部面试开发文档需要的可在公众号<Android苦做舟>获 ...

  9. Android中高级进阶开发面试题冲刺合集(七)

    以下主要针对往期收录的面试题进行一个分类归纳整理,方便大家统一回顾和参考.本篇是第七集~ 强调一下:因篇幅问题:文中只放部分内容,全部面试开发文档需要的可在公众号<Android苦做舟>获 ...

最新文章

  1. linux mysql 1045 错误_Linux 下,mysql数据库报无法登陆错误:ERROR 1045 (28000): Access denied for use...
  2. python完全新手教程-Python完全新手教程
  3. iframe跨域自适应高度
  4. 快速构建Windows 8风格应用33-构建锁屏提醒
  5. php引用类,thinkphp引用类的使用
  6. kafka集群 kubernetes_为什么 Kubernetes 如此受欢迎?
  7. Google 插件总览
  8. postgresql安装之后修改默认用户密码
  9. SQL查询重复记录,删除重复记录
  10. RTT线程管理篇——RTT时间片
  11. linux es数据库 head,centos7安装Elasticsearch及Es-head插件详细教程(图文)
  12. lua运算与php运算符,Lua 运算符
  13. java 高级工程师面试题集锦,持续更新~
  14. 电脑关机后键盘灯和风扇还在转的解决方案
  15. LaTeX软件安装及简易入门
  16. 全网最全的划分VLAN的方法,走过路过不要错过
  17. tbase 之二 pgbench
  18. 山东理工大学oj打字速度测试
  19. 全民一起VBA实战篇第三课:文本内容的实用技巧
  20. rabbitmq遇到的一些坑

热门文章

  1. C++知识点55——函数模板
  2. 油猴脚本第一家,网页网盘链接实时判断+资源搜索网站导航,资源重度患者的福利...
  3. 直播APP开发:直播的广告效益和号召力分析
  4. 实验三 密码破解技术
  5. 使用Apache Spark构建实时分析Dashboard
  6. 程序员javascript写乒乓球,和机器人练技术!没赢过!
  7. JavaWeb-网站在线用户信息、网站访问量以及管理踢出用户实例
  8. cocos2d-x的A*寻路
  9. 8天学通MongoDB——第三天 细说高级操作
  10. Spring3基于注释驱动的AOP