我想在 ScrollView 上有一个类似 onScroll 的事件,但在 Swiper 上有一个 onSwipe 事件。在这个回调中,我想获得“滑动进度”(例如,将 50% 滑动到第二个项目)。使用所有支持的回调,我可以在滑动开始或结束时做一些事情,但我也想要介于两者之间的所有步骤。我怎么能这样做?
问问题
1359 次
1 回答
2
获取当前视图的滚动位置
Swiper
component 是 a ScrollView
,您也可以使用它的本机 props Swiper
,对于您的情况,使用onScroll
prop 来获取滚动的位置和滑动的百分比。
const viewWidth = Dimensions.get('window').width;
...
<Swiper
scrollEventThrottle={16}
onScroll={(e) =>
const scrolledPercentage =(e.nativeEvent.contentOffset.x / (viewWidth * (this.currentIndex + 1)));
}
>
...
</Swiper>
.
获取您通过的视图的进度
只需使用onIndexChanged
props 获取当前索引,然后使用 swiper 内的 Views 计数来计算您的进度
<Swiper
style={styles.wrapper}
showsButtons={true}
onIndexChanged={(index) => {
let progress= index/totalNumberOfView
let progressInPercentage = Math.floor(progress*100)
this.setState({
progress,
progressInPercentage
})
}
>
于 2020-05-25T10:37:24.220 回答