17|Gesture(下):如何解决多视图多手势的冲突问题?
蒋宏伟
你好,我是蒋宏伟。
前一节课,我们讲解了手势进阶的一些内容,也分析了如何解决单视图多手势冲突的问题,但这个 Demo 其实挺基础的。今天我们要再深入一点,看一个稍微复杂点的案例,就是 Android 的回弹下拉刷新。
在 Gesture 的第一篇中我提到过,实现 Android 回弹下拉刷新的难点在于 Android 的 ScrollView 组件就没有滚动回弹属性 bounces。而 iOS 的 ScrollView 组件是有滚动回弹属性 bounces 的,而且是默认开启的。
在 Android 回弹下拉刷新案例中,会用到 Gesture 上中下三篇中的所有知识点,包括如何将手势库 Gesture 和动画库 Reanimated 搭配一起使用,如何解决单视图多手势的冲突问题,如何解决多视图多手势的冲突问题。
今天这一讲,一方面我会重点和你介绍如何解决多视图多手势的冲突问题,另一方面我会把 Gesture 上中下三篇的内容给你串起来,帮你实现 Android 回弹下拉刷新的效果。
Android 回弹下拉刷新
在真实的业务开发中,实现双端下拉刷新的正确逻辑是:iOS 基于 bounces 实现,Android 基于手势实现。不过,为了方便,我在写 Demo 的时候,直接把 iOS 的 bounces 效果关了,双端统一使用手势实现,省去了 if else 的代码,这样你看代码会容易一些。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了Android回弹下拉刷新的实现,重点介绍了解决多视图多手势冲突问题的方法。作者强调了在实现Android回弹下拉刷新时,涉及到手势库Gesture和动画库Reanimated的使用,以及如何解决单视图多手势冲突问题和多视图多手势冲突问题。文章详细介绍了回弹下拉刷新的实现原理和相关代码,包括对滚动偏移量和拖拽偏移量的处理,以及在松手刷新页面或取消刷新时的动画处理。通过对共享值和手势绑定的讲解,读者可以快速了解如何实现Android回弹下拉刷新效果。文章内容深入浅出,适合想要实现该效果的开发者阅读。同时,文章还提到了使用Gesture手势库和Reanimated动画库的强大之处,以及核心代码示例,为读者提供了实际操作的参考。文章通过站在单个手势的视角拆解问题,解决了多视图多手势的冲突,为读者提供了解决类似问题的思路和方法。文章还提到了解决手势冲突问题的三个要点,包括将Reanimated v2和Gesture v2搭配使用、Gesture手势库提供的丰富功能和创新的解决方案。这些内容为读者提供了解决手势冲突问题的新思路和方法。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《React Native 新架构实战课》,新⼈⾸单¥59
《React Native 新架构实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- abc🙂有没有可能跟RecyclerListView组件结合起来,实现andaroid高性能的长列表弹性滚动
作者回复: 可以的。RecyclerListView 提供了相关属性,可以把默认的 ScrollView 替换成 Animated.ScrollView。
2022-05-102 - 风星舞请问GitHub仓库中运行android时的这个 yarn install-android-hermes 命令是什么作用?
作者回复: 这个是开启 Hermes 的命令;现在可以直接通过配置同时开启新架构的 Hermes 和 Fabric 了。 On Android you can set newArchEnabled=true inside the android/gradle.properties file.
2022-05-07 - 侯同学蒋老师好 处理单视图多手势冲突的 Race Exclusive Simultaneous 与处理多视图多手势的 simultaneousWithExternalGesture requireExternalGestureToFail 有什么关系、区别 ? 只是处理单视图多手势冲突的 API 是在组件的角度,处理多视图多手势冲突的 API 是在手势的角度吗 ? 特别是 Simultaneous 与 simultaneousWithExternalGesture 感觉很像 另外上面代码中的 panGesture 调用 simultaneousWithExternalGesture 时为什么还要传入 scrollGesture tapGesture 外部组件为什么还要响应这两个事件,虽然我测试不传确实不行2023-09-03归属地:北京
- songyqGesture 手势库解决手势冲突的方案 确定不是抄的apple的手势代理么?2022-08-17归属地:北京
收起评论