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;
};复制代码



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值