android - onPanResponderRelease 不适用于 Android 设备

标签 android ios react-native

当我在 iOS 设备上使用 panResponders 时,它工作正常,但当我在 Android 设备上运行相同的代码时,它没有按预期工作。代码如下

componentWillMount() {
    this._panResponder = PanResponder.create({
        onStartShouldSetPanResponder: (evt, gestureState) => true,
        onStartShouldSetPanResponderCapture: (evt, gestureState) => true,
        onMoveShouldSetPanResponder: (evt, gestureState) => true,
        onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,

        onPanResponderGrant: (evt, gestureState) => {
            return true;
        },
        onPanResponderTerminationRequest: (evt, gestureState) => {
            console.log('getting on android');
            return false;
        },
        onPanResponderRelease: (evt, gestureState) => {
            console.log('getting here')
            return true;
        },
        onPanResponderTerminate : (evt, gestureState) => {
            console.log('gets');
        }
    });
}

另外我的 scrollView fragment 如下。

<ScrollView
      ref={ref => this.myScroll = ref }
      {...this._panResponder.panHandlers}>

最佳答案

要使其正常工作,请使用 onPanResponderEnd 而不是 onPanResponderRelease

此外,如果我们仍然想使用 onPanResponderRelease,那么我们应该允许终止请求:

onPanResponderTerminationRequest: () => true

关于android - onPanResponderRelease 不适用于 Android 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47467180/

相关文章:

Android Listview 在适配器更改后保留旧项目

macos - zsh : command not found: react-native - MacOS

firebase - 如何将Firebase的身份验证链接到实时数据库?

ios - 如何使用 swift 中的委托(delegate)将第二个 View Controller 文本字段值添加到第三个 View Controller 按钮中的第一个 View Controller 标签

ios - 创建可能具有 nil 值的 REST 参数字典

react-native - React Native 在 SectionList 中获得顶行

javascript - 如何使用适用于 android 和 iphone 的 javascript 检测长触摸压力?

android - 如何在启动 GCM 程序之前检查用户 google 帐户是否已添加到设备上?

android - 如何从android中的webview中选择图像

html - Safari 中未应用最大高度