温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android之事件分发机制与冲突的示例分析

发布时间:2021-09-08 16:09:52 来源:亿速云 阅读:158 作者:小新 栏目:开发技术

这篇文章主要介绍Android之事件分发机制与冲突的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

常见的滑动冲突场景!

目前常见的滑动冲突主要可以分为以下三种来概括:

  1. 外部滑动方向和内部View的滑动方向不一致,内部的View和外部的View的滑动方向是**互相垂直的,**比如Scroll View嵌套View Pager,如图1-1所示;

  2. 外部滑动方向和内部View的滑动方向是一致的,内部的View和外部的View的滑动方向**互相平行,**比如Scroll View嵌套RecyclerView ,如图1-2所示;

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

Android之事件分发机制与冲突的示例分析

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

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

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

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

(1). 外部拦截法

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

Android之事件分发机制与冲突的示例分析

(2). 内部拦截法

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

Android之事件分发机制与冲突的示例分析

Android之事件分发机制与冲突的示例分析

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

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

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

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

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

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

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

以上是“Android之事件分发机制与冲突的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI