当我在 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/