在点击

时间:2018-01-24 18:38:00

标签: react-native scrollview gesture

我正以全屏模式显示图片库。我在水平方向使用scrollview滚动图片。现在我可以通过向左或向右滑动来滚动图片,并使用pagingEnabled启用的道具。

但我想添加更多手势,当用户点击左侧或右侧(距边缘一定距离)时,它会自动映射交换手势。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

获取ref<ScrollView>然后到scrollToEnd()或使用scrollTo方法 - https://facebook.github.io/react-native/docs/scrollview.html#scrollto

要计算页码,您可以使用onLayout来计算页面大小。如果它是设备的宽度,那么这很简单,只需使用Dimensions.get('window').width,然后将其提供给x中的scrollTo

答案 1 :(得分:0)

我假设您的滚动视图是使用 pagingEnabled 水平道具的。

<ScrollView
   horizontal={true}
   pagingEnabled={true}
   onMomentumScrollEnd={event => {
      this.setState({xOffset: event.nativeEvent.contentOffset.x })
   }}>
      // Content 
</ScrollView>

可以使用:

计算位置

this.state.xOffset/ DeviceSize.width

每次您在ScrollView中滚动项目时,都会调用

onMomentumScrollEnd

(在这种情况下,内容必须为全角)