react-native-pull icon indicating copy to clipboard operation
react-native-pull copied to clipboard

PullView&&PullList解决下拉顶部偶尔出现空白

Open wuyunqiang opened this issue 7 years ago • 6 comments

这个问题主要是出现在iOS上,因为iOS的scrollview是有弹性的Android没有, 个人的解决办法是在判断是否拦截上拉事件时返回false,不拦截。这样上拉还是交给scrollview自己处理,希望可以解决问题,如果不能希望对帮助你解决问题提供一个思路。 代码:

   onShouldSetPanResponder(e, gesture) {
        //向上滑动不拦截 防止上方出现白色部分
        if (!this.pullable || isUpGesture(gesture.dx, gesture.dy)|| !isVerticalGesture(gesture.dx, gesture.dy)) { //不使用pullable,或非向上 或向下手势不响应
            return false;
        }
        if (!this.state.scrollEnabled) {
            this.lastY = this.state.pullPan.y._value;
            return true;
        } else {
            return false;
        }
    }

如果发现不能向上滑动可以把scrollview或者listview里面的 scrollEnabled={this.state.scrollEnabled}这个代码去掉。 目前我用着至少比以前好了。

wuyunqiang avatar Oct 30 '17 07:10 wuyunqiang

使用flatlist&&Scrollview 上拉下拉没有空白 修改的作者代码https://github.com/wuyunqiang/PullView

wuyunqiang avatar Oct 30 '17 09:10 wuyunqiang

@wuyunqiang 使用了你这种方式之后再ios还是有问题,下拉狠了有留白啊,怎么解决啊?

iamdurui avatar Nov 27 '17 02:11 iamdurui

不知道你是使用的我的代码 还是使用的作者的然后自己修改的 你是用的scrollview还是flatlist 我使用改过后的没有遇到你说的问题啊。如果实在不行 那就只能换个库或者尝试将iOS的弹性属性设置false看看行不行吧。

wuyunqiang avatar Nov 27 '17 03:11 wuyunqiang

PanResponder不管上滑手势之后,体检就好多了 但是不太明白为什么作者要自己处理上滑的情况,然后在处理中,添加了下面的代码

// 上滑的同时控制滚动条位置
this.scroll.scrollTo({x:0, y: gesture.dy * -1});

这个时候,上滑就感觉到卡顿。

104gogo avatar Jan 04 '18 03:01 104gogo

@104gogo 怎么不管上滑手势? 我也想优化这一点

zengyimou avatar Jul 26 '18 07:07 zengyimou

@zengyimou 太久以前写的了,感觉应该是下面这段代码,使用 isVerticalGesture 方法进行了判断

onShouldSetPanResponder(e, gesture) {
    if (!this.pullable || isUpGesture(gesture.dx, gesture.dy) || !isVerticalGesture(gesture.dx, gesture.dy)) { //不使用pullable,或非向上 或向下手势不响应
        return false;
    }
    ...
  }

104gogo avatar Jul 28 '18 06:07 104gogo