Android面试之事件分发(机制、冲突)

  1. 外部滑动方向与内部滑动方向即有相同的又有垂直的,也就是以上两种情况的综合出现,这种情况是算比较复杂的一种情况,如图1-3所示。

图片

常见滑动冲突的处理思路!


滑动冲突看起来比较棘手,特别像场景3的那种嵌套好几层的滑动冲突。

但不管滑动冲突多么的复杂,它主要涉及到的都是一些触摸事件的分发和拦截,有一定的处理规则在里面,我们可以根据规则来选择合适的方法来进行处理:

常用的冲突解决的两种基本思路

(1). 外部拦截法

即重写父容器的onInterceptTouchEvent方法,根据父容器是否需要拦截这个事件来返回对应的布尔值,如果父容器需要拦截这个触摸事件则返回true,如果不拦截则返回false;

图 2-1

(2). 内部拦截法

即父容器不拦截任何的事件,将对应的事件传递给子元素,根据子元素是否需要消耗这个触摸事件来进行处理,如果子元素不消耗此事件,又会交由父容器来进行对应的处理,子容器需要做如图2-2处理,父容器需要做如图2-3所示处理。

图 2-2

图 2-3

同时,事件冲突也是一线互联网大厂中的必考题,来看看下面这些问题你能答上来几个?

  1. 说说你对事件分发机制的理解。(阿里面试真题)

  2. down事件和move事件对应的流程机制是什么?(腾讯面试真题)

  3. 事件冲突中如何快速找到解决方案,请举例。(字节面试真题)

  4. ScrollView 和RecyclerView 冲突时,如何解决?(百度面试真题)

所以说,关于解决事件冲突的技巧,也是大家需要掌握其中精髓的!

但如果通过博客文章学习,看完后自身是感觉学到了,一旦项目中出现了事件冲突的问题,很难将文章中的知识点运用到实际问题当中,而很多开发者在解决事件冲突中遇到的最大问题,就是很难找到解决问题的切入点。

推荐阅读:

[反思|Android 事件分发机制的设计与实现](https://gitee.​
com/vip204888/java-p7)

RecyclerView 事件分发原理实战分析

最后


最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取
94)]一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值