垂直滚动视图与垂直导航冲突

在我的原生应用程序中,我使用了askonov的react-native-router-flux来显示一个带有垂直ScrollView小部件的场景。 我已经将场景configuration为从底部向上浮动,并且默认情况下,从顶部向下拖动可closures场景。

<Router> <Scene key="root" hideNavBar={true}> <Scene key="welcome" component={Welcome}/> <Scene key="demo" component={Demo} direction="vertical"/> </Scene> </Router>

ScrollView包含的内容远远超过了屏幕上显示的内容,所以用户需要上下拖动。 不幸的是,从下拉到近景的行为似乎与ScrollView相冲突,所以当用户想要向上滚动时,他们无意中closures了场景。

具体来说 – 它看起来像轻弹手势正在被重写。 向上滑动不会像应该那样扔掉ScrollView内容,而向下滑动会closures场景。

这似乎是一个新的行为,因为我升级到了React Native 0.32。 当我在0.22的时候,向上挥动的手势仍然可以使ScrollView的内容消失。

理想情况下,如果ScrollView的内容已经完全滚动到顶部,我只想closures场景。 我会解决完全禁用滑动到closures行为。

您可以尝试将panHandlers={null}添加到您的场景道具。 我相信这应该禁用轻弹closures。

另外,你可能利用ScrollView中的RefreshControl来添加一个动作,当用户从已经在顶部的列表中拉下来的时候(基本上是一个下拉到刷新的动作,但相反,它会解雇,hacky但可以工作)。