React Native PanResponder 不适用于 Android 设备

ale*_*ngn 4 javascript android device react-native

出于某种原因,我无法在我的 Android 设备上制作 PanResponder。我使用带有 Android 5.0.2 的摩托罗拉 Moto E(第 2 代)

我能够在 Android 模拟器(Nexus 6:Android 5.1 和 Nexus S:Android 4.4)以及 iOS 模拟器和设备上完成这项工作。

知道为什么PanResponder在设备上不起作用吗?

这里有一些代码以防万一。设备上没有任何console.log工作:

componentWillMount() {
    this.panResponder = this.getPanResponder();
}

getPanResponder() {
    return PanResponder.create({
        onStartShouldSetPanResponder: () => {
            console.log('start');
            return true;
        },
        onStartShouldSetPanResponderCapture: () => {
            console.log('start capture');
            return true;
        },
        onMoveShouldSetPanResponder: () => {
            console.log('move');
            return true;
        },
        onMoveShouldSetPanResponderCapture: () => {
            console.log('move capture');
            return true;
        },
        onPanResponderMove: () => {
            console.log('moving');
        }
     })
}

render() {
    return (
        <View
            style={styles.container}
            {...this.panResponder.panHandlers}
        >
        </View>
    )
}
Run Code Online (Sandbox Code Playgroud)

谢谢

YaN*_*uSH 9

我遇到了同样的问题,就我而言,解决问题的方法是使用 pan 响应程序处理程序为视图设置 backgroundColor。如果你不能让它丰富多彩(因为我不能),只需将 backgroundColor 设置为一些不明显的东西,比如rgba(255,255,255,0.01)

似乎 android 忽略了透明视图上的 pan 响应程序处理程序

  • 不错的建议。PanResponder 不会在透明视图下触发! (3认同)