简体   繁体   中英

[react-native]onPanResponderRelease on FlatList or ListView doesn't trigger in android

I have a FlatList component, and I want realize PanResponder API on it, below is part of my code:

componentWillMount() {
    this._panResponder = PanResponder.create({
      onStartShouldSetPanResponder: ()=>true,
      onMoveShouldSetPanResponder: ()=>true,
      onPanResponderGrant: (e, gestureState)=>this.panResponderStart(e, gestureState),
      onPanResponderMove: (e, gestureState)=>this.panResponderMove(e, gestureState),
      onPanResponderRelease: (e, gestureState)=>this.panResponderEnd(e, gestureState),
      onPanResponderTerminate: (e, gestureState)=>this.panResponderEnd(e, gestureState),
    });
}
panResponderEnd(e, gestureState) {
    //this._previousTop += gestureState.dy;
    this.setState({scrollTop:0});
    console.log('release');
}
...
<FlatList
    {...this._panResponder.panHandlers}
    ...

onPanResponderRelease doesn't trigger on FlatList or ListView or VirtualizedList component, OS is android, is it a RN's bug? how to resolve this problem, any help is appreciated.

no need to pass panHandlers to view. I am using it directly on sectionList . I got it working properly by using onPanResponderEnd instead of onPanResponderRelease .

Also if you still want to use onPanResponderRelease then you should allow termination request by:

onPanResponderTerminationRequest: () => true

Let me know if it doesn't work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM