当前位置: 首页 > news >正文

Android 事件分发机制 图解

下方有大图,直接点开看模糊, 放大网页可以看清楚。

设计事件需要考虑什么

分发流程图解

事件产生的过程

MotionEvent

MotionEvent是底层Linux用反射机制产生的一个事件。这个是事件分发的时候的方法参数。其结构是:

分发事件流程及思路

关于U型链

是属于八股了,网上找的图画了一下,讲真我自己都蒙,尽管我看过源码,也解决过关于事件传递拦截相关问题,但是看这张图也蒙圈,因为那这个图是恢复不了完整的不同对象调用关系的。 但是你跟别人解答(面试)的时候,他们可能拿的是这个答案,即使你知道怎么回事,答得跟下图不一样也会pass。尽管如此,但我还是建议多看看源码,哪怕记不清楚,忘了, 也比看二三手信息要接近真相。

事件冲突问题解决思路

Android自定义布局中经常出现一些事件冲突的问题。如:

  • 外部滑动与内部滑动方向不一致,比如ViewPager包含ListView
  • 外部滑动与内部滑动方向一致,比如ScrollView嵌套一个ListView
  • 上述两种问题都有

如一个横向的ViewPager嵌套一个纵向的ListView

外部拦截法

外部拦截法,

让ViewPager直接重写onInteceptTouchEvent()方法。是横向的,就自己要,返回true。如果是纵向的,那事件留给其子view listView。

内部拦截法处理

内部拦截法就是,让两者中的子view必须感知到这个事件。 子view有个方法是

parent.requestDiasallowInterceptTouchEvent(true)

告知父组件不要拦截我的事件。

http://www.dtcms.com/a/443253.html

相关文章:

  • 做网站价钱电脑版qq在线登录网页入口
  • 140、【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(六)
  • 免费网站建设软件大全wordpress禁止中国ip
  • 有界区域上具有常数右端项的泊松方程解的上界估计
  • 做区位分析的地图网站wordpress主题分类目录主题
  • 网站建设实习每天内容手机网站开发 html
  • 手机网站制作案例教育网站建设备案
  • 网站开发时的闭包写法进一步加强区门户网站建设管理办法
  • 计算机网站设计怎么做扬中信息网
  • 专业网站名词解释资讯网站 怎样 增强用户粘度
  • 现代C++——并发编程
  • Dotnet通过OpenAI方式接入DeepSeek
  • 第八课(零基础友好版)|第一次训练模型(Teachable Machine,超详细)
  • 定制制作网站公司建筑模型网站有哪些
  • 【多线程】无锁数据结构(Lock-Free Data Structures)是什么?
  • YOLO入门教程(番外):卷积神经网络—卷积神经网络(LeNet)
  • 哪里可以做寄生虫网站wordpress链接默认是什么样子
  • 网站开发常用插件怎样保存网站资料 做证据
  • 网站经常被挂码泉州seo排名扣费
  • 做网站需要做需求分析吗修改wordpress登录背景图片
  • 网站建设人员分布知名的摄影网站有哪些
  • MySQL 运维知识点(十四)---- 主从复制
  • Linux常用通配符大全含运行示例
  • 相城seo网站优化软件django企业级问答网站开发
  • (autode计算化学—atoms)AtomCollection原子集类
  • 主键索引和唯一性索引的区别与联系
  • 免备案域名是危险网站荣耀手机商城官方网
  • 电磁兼容试验标准:电快速脉冲EFT
  • 建立一个平台网站需要多少钱大学软件开发需要学什么
  • wordpress安装好了怎么登陆网站电影网站如何做长尾关键词