16|Gesture(中):如何解决单视图多手势的冲突问题?
蒋宏伟
你好,我是蒋宏伟。
通过上节课对轻按手势和拖拽动效这两个基础手势案例的学习,相信你现在已经能够完成一些基本手势需求的开发了。今天这节课,我们就再进一步,聊下怎么解决更进阶的手势问题。
在手势基础的学习中,我们给到的手势案例都是围绕着一个视图、一个手势展开的,处理起来很简单。但在真实的工作中,情况会更加复杂。比如说,我们会有稍微难一点的情况,也就是一个视图同时存在多个手势。还有更复杂的,就是同时有多个视图、多个手势,并且这些视图和手势环环相扣。
当然你也不用担心,这两种复杂的情况,我们的 Gesture 手势库都提供了相关的解决方案。不过俗语也有说,“一口吃不成大胖子。”所以今天这一讲,我们先来聊聊一个视图多个手势如何处理,下一讲再聊聊多个视图、多个手势如何处理。
但在展开讲解手势冲突问题之前,我需要带你补全 Gesture 手势的一些进阶知识。
手势进阶
我们要研究多个手势冲突的问题,大体上得遵循这样的流程:
首先你得知道 Gesture 手势库都能识别哪些手势;
然后手势实际是一系列连续的动作,而这一系列动作大致可以分为几个阶段,比如开始、进行中、完成和中途取消,Gesture 手势库又提供了哪些手势回调来识别手势的不同阶段;
最后,不同阶段的回调又都能提供什么参数,能让开发者来使用。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
手势库解决了单视图多手势冲突问题,通过竞争、同时响应和排他三种方式处理手势冲突。竞争机制使多个手势进行竞争,只有一个会触发;同时响应机制允许多个手势同时触发;排他机制则由组件决定手势的响应优先级。这些方法帮助开发者更好地处理单视图多手势冲突问题。 本文介绍了Gesture手势库的9种手势、3类回调事件和3种手势冲突的解决方案。9种手势包括轻按手势Tap、长按手势LongPress、拖拽手势Pan、旋转手势Rotation、缩放手势Pinch、快滑手势Fling、重按手势ForceTouch、原生手势Native。3类回调分别是通用回调、激活回调和系统取消回调。而解决手势冲突的方式包括竞争、同时响应和排他。 这篇文章内容丰富,介绍了如何解决单视图多手势的冲突问题,以及Gesture手势库的功能和应用。读者可以从中了解到如何利用手势库处理复杂手势的基础知识,为进一步学习多视图多手势冲突问题的解决方案奠定基础。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《React Native 新架构实战课》,新⼈⾸单¥59
《React Native 新架构实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- 霍霍老师讲的很好,要是能有一些demo代码实例,让我们身临其境学习就更好了
作者回复: GitHub 上有代码,可以看看哦
2022-05-15 - 焦糖大瓜子点个赞2022-10-25归属地:广东
- 静心再给老师点个赞。2022-06-08
收起评论