react-native-page-listview是一個能很好實現(xiàn)上拉下拉的功能的插件设易,可是存在在部分真機(jī)上逗柴,在列表沒有滾動時,不能觸發(fā)onPress顿肺。通過對插件源碼分析戏溺,發(fā)現(xiàn)在開始移動時判斷是否設(shè)置當(dāng)前的View為手勢響應(yīng)者時沒有對點擊事件做判斷,所以在onMoveShouldSetPanResponder加入一個dy=0時的情況判斷屠尊,就能很好的解決onPress不能觸發(fā)的情況旷祸。
//開始移動時判斷是否設(shè)置當(dāng)前的View為手勢響應(yīng)者
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){
????????????bool=false;
}else {//向下拉
????????if(this.state.pullState!=='noPull'){
????????????????????bool=true;
????????????}else {
? ? ? ? ? ? bool=!this.state.scrollEnabled||this.lastListY<1;
????????} }
????????return bool;
};