我想在React Native中阻止ScrollView滚动。我不想完全禁用它,我只想让它在特定的点停止滚动,这样我就可以在之后再次滚动它。
由于滚动动量之后仍然存在,因此不能在满足特定条件时简单地禁用它,因此下面的代码不起作用。
<ScrollView
onScroll={e => {
if (e.nativeEvent.contentOffset.y > 500) {
setStopScroll(true)
}
}}
scrollEnabled={!stopScroll}
/>
我省略了再次启用滚动视图以继续滚动的部分。
您正在寻找snapToOffsets
。这将获取一个数组,其中包含您希望它停止的位置。停止后,如果再次滚动,它将在下一个偏移量处停止。同时确保snapToEnd
设置为false
。
<ScrollView
snapToOffsets={[100,500,800]}
decelerationRate="fast"
snapToEnd={false}
snapToStart={false}
disableIntervalMomentum={true}
onScroll={onScroll}
>
... your code here
</ScrollView>