【问题标题】:How to make the iOS bottom-sheet panel of Maps in react-native?如何在 react-native 中制作 iOS 地图底部面板?
【发布时间】:2019-07-14 06:14:25
【问题描述】:

我正在开发一个 react-native 应用程序。我正在尝试制作一个类似于 iOS 地图上的 UI 元素,您可以在其中从底部滑动面板。 列表的行为相当复杂:

  • 在面板完全打开之前,您无法向下滚动列表。
  • 尝试向下滚动会使面板向上滚动,然后如果您继续在屏幕上滑动,列表就会开始滚动。

当然还有:

  • 在列表位于开头之前,您不能向下滑动面板。
  • 如果您尝试向下滑动面板并且列表没有完全向上滚动,您最终会将列表滚动到开头,然后将面板拉下。

列表向上或向下滚动和面板向上或向下移动必须在一个动作中完成。用户不必将手指拉出屏幕即可进行第二个动作。这是真正的困难部分。此外,它必须在 iOS 和 Android 上运行。

An example GIF of the iOS panel and the expected behavior.

完美的模块应该是这样的,但列表即使到达顶部仍然可以滚动:https://github.com/donaldmorton/react-native-bottom-drawer

我尝试使用此模块但没有成功: https://github.com/simonhoss/react-native-touch-through-view

在 react-native 中类似的东西是完美的: How can I mimic the bottom sheet from the Maps app?

我已经查看了这篇文章: React Native slide out panel and scrollview

欢迎任何形式的帮助,谢谢!

【问题讨论】:

  • 如您所知,没有理想的软件包解决方案。我认为尝试从头开始创建它对您来说是一个很好的挑战。这是绝对可行的,我知道你可以做到。查看 react-native-reanimated 和 react-native-gesture-handler 来实现这一点。如果您能够设法从头开始创建它,您将增加对手势和动画的了解。不会痛的
  • 谢谢你,我要深入研究!

标签: ios react-native maps panel bottom-sheet


【解决方案1】:

你可以看到https://github.com/osdnk/react-native-reanimated-bottom-sheet。 它使用 react-native-gesture-handler 和 react-native-reanimated 从头构建

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多