react-native-page-listview真机上点击不能触发onPress事件的bug解决

react-native-page-listview是一个能很好实现上拉下拉的功能的插件,但是在部分真机上,在列表没有滚动时,不能触发onPress。经过对插件源码分析,发如今开始移动时判断是否设置当前的View为手势响应者时没有对点击事件作判断,因此在onMoveShouldSetPanResponder加入一个dy=0时的状况判断,就能很好的解决onPress不能触发的状况。

//开始移动时判断是否设置当前的View为手势响应者
onMoveShouldSetPanResponder=(e,gesture)=> {  
  // if(!this.props.pageLen)return false;   
 let {dy}=gesture;    
let bool;    
if(dy<0){//向上滑 
       if(this.state.pullState!=='noPull'){ 
           this.resetAni();       
         }        
        !this.state.scrollEnabled&&this.setState({scrollEnabled:true});
        bool=false;    
}else if(dy==0){ //为0时是点击事件
       bool=false;    
}else {//向下拉       
     if(this.state.pullState!=='noPull'){  
          bool=true;      
      }else {    
          bool=!this.state.scrollEnabled||this.lastListY<1;     
       }    }   
 return bool;
};复制代码
相关文章
相关标签/搜索