React Native ScrollView有一个props pagingEnabled .但是,它假定ScrollView中每个页面(或子组件)的宽度等于ScrollView的宽度.

我们如何改进它,使其在小于ScrollView的页面上正常工作?

Is it possible to detect when the user stops scrolling?然后我们就可以轻松地编写自己的代码,以捕捉到正确的页面.

编辑:还有其他一些方法可以通过使用仅在iOS上可用的props 来解决这个问题,所以这在Android上尤其是一个问题.

推荐答案

有两种不同的props 可以设置为React Native ScrollView,它需要回调以通知滚动已结束.(它们现在都有文档记录.)


onScrollEndDrag function

一旦用户放开ScrollView(将手指从屏幕上提起),就会调用.

工作样本:https://rnplay.org/apps/Ufv6Cg(不再提供)


onMomentumScrollEnd function

当ScrollView停止滑动时调用(用户从屏幕上抬起手指后,它通常会继续滑动一点).

工作样本:https://rnplay.org/apps/BPgG_g(不再提供)


Note:我在API文档中找不到任何React本机组件的方法,但它们的工作方式如示例所示.我看到他们在react-native-snap-carousel中使用了here.

React-native相关问答推荐

错误:HostBody::get for prop NativeUnimoduleProxy中出现异常- Android虚拟设备(AVD)使用Expo测试React Native App时崩溃

如何重复使用expo 音频对象S录音?

领带麦克风在Reaction-Native-Incall-Manager中不工作

1.5.1 nxworkspace+react-native 版本的Axios url未定义问题

为什么当我更换屏幕时playground 音乐不会停止?

在 React Native 中,水平滚动不适用于我的整个应用程序

我如何限制 FlatList 中的元素并增加负载?

react-navigation中的React-native android后退按钮

中彼此相邻对齐(Align) react native

这个 refs 在方法中变得未定义

xcrun:错误:SDK "iphoneos" cannot be located

Realm 和 React Native - 实现自动更新的最佳实践?

我们如何将 Firebase Analytics 与基于 expo 的 react-native 应用程序一起使用

有react-native复选框的例子吗?

如何在 React 中使用带有钩子的生命周期方法?

创建新的 react-native 元素时出现Unexpected token import错误

动态改变 React Native Flat List 中的列数

React native - 以编程方式判断是否启用了远程 JS 调试

com.facebook.react.bridge.readablenativemap 不能转换为 java.lang.string

StackNavigator中如何改变动画的方向?