【发布时间】:2018-01-24 18:37:59
【问题描述】:
我正在以全屏模式显示图片库。我在水平方向使用滚动视图来滚动图片。现在我可以通过向左或向右滑动来滚动图片,并使用pagingEnabled 启用的道具。
但我想添加更多手势,当用户点击左侧或右侧(距边缘的距离)时,它会自动映射交换手势。我该怎么做?
【问题讨论】:
标签: react-native scrollview gesture
我正在以全屏模式显示图片库。我在水平方向使用滚动视图来滚动图片。现在我可以通过向左或向右滑动来滚动图片,并使用pagingEnabled 启用的道具。
但我想添加更多手势,当用户点击左侧或右侧(距边缘的距离)时,它会自动映射交换手势。我该怎么做?
【问题讨论】:
标签: react-native scrollview gesture
我假设带有 pagingEnabled 和 horizontal 道具的滚动视图看起来像这样。
<ScrollView
horizontal={true}
pagingEnabled={true}
onMomentumScrollEnd={event => {
this.setState({xOffset: event.nativeEvent.contentOffset.x })
}}>
// Content
</ScrollView>
可以通过以下方式计算位置:
this.state.xOffset/ DeviceSize.width
每次滚动 ScrollView 中的项目时都会调用 onMomentumScrollEnd
(在这种情况下,内容必须是全角)
【讨论】:
获取ref 到<ScrollView> 然后到scrollToEnd() 或使用scrollTo 方法 - https://facebook.github.io/react-native/docs/scrollview.html#scrollto
要计算页码,您可以使用onLayout 来计算页面大小。如果是设备的宽度,那很容易,只需使用Dimensions.get('window').width,然后将其提供给scrollTo 中的x。
【讨论】:
scrollTo 方法?