【发布时间】:2019-04-30 14:32:22
【问题描述】:
我想要什么 (GIF)
这是一个(质量降低的)GIF,关于我想要实现的目标。
我想要什么(文字)
我有一个scrollview,它位于我屏幕的一半。
我想要的是向上拖动 scrollview,然后,当它到达某个位置时,将 drag touch event 发送到 scrollview 本身,这样它就可以继续滚动。
我的尝试
- 将滚动视图全屏放在前台,并在其
contentContainerStyle中添加半屏填充顶部。它运作良好,但我无法单击它背后的视图。有没有办法点击滚动视图的空白区域? -
我还尝试检测滚动位置,以便相应地向上移动视图
<ScrollView onScroll={event => moveScrollViewUpIfNeeded(event)}> ... </ScrollView>但是当我在 iOS 模拟器上测试它时没有工作。事件甚至没有被触发。 React Native Docs 声明
onScroll需要scrollEventThrottle才能工作。但是,scrollEventThrottle只是 available on iOS。就我而言,我也希望在 Android 上使用它。
如果我成功实现了这一点,我应该面临另一个 UI 问题:向上拖动 ScrollView 时,如何防止它在视图尚未位于所需位置时滚动?
那么,你能给我一些提示来实现这一点吗:)?
谢谢,
【问题讨论】:
-
条件渲染怎么样?您首先将您的内容包装在
<View />中,然后将其设为绝对位置。拖动时,您会检测它是否已获得全屏空间。然后,您呈现您的内容,但在<ScrollView />内,而不是具有滚动功能。由于本方案不涉及padding,只要拖拽的view没有占据整个屏幕高度,就可以点击后面的内容。 -
嘿大卫。你最终解决了你的问题吗?我现在也面临着同样的挑战。链接到我的问题:stackoverflow.com/questions/55082289/…
-
我已经开始对这个问题进行赏金,因为我在网上找不到任何东西来实现这一点。有人可以提供一个解决方案,重新创建谷歌地图应用程序中显示的界面,并通过滚动正常运行吗?包含的 gif 仍然是当前版本,因此可能值得下载以仔细查看。有关尝试创建此 UI 的复杂性/错综复杂性的更多详细信息,请参阅@GilbertNwaiwu 的问题。
-
新的 iOS 13 的“查找我的”应用还具有一个可滚动的叠加层,当您到达 scoll 视图的顶部时会向下拖动它:imgur.com/a/gg84IPo
-
我发现这个库看起来像是在做你需要的事情octopitus.github.io/rn-sliding-up-panel。我将构建一个项目并进行演示
标签: reactjs react-native mobile-application react-native-scrollview