oubowu/SlideBack

列表页快速上滑的时候,很容易关闭页面,几率很高的。

gndegithub opened this issue · 12 comments

列表页快速上滑的时候,很容易关闭页面,几率很高的。这个怎么整?有没有合适的解决办法,已经集成进去了,刚发现这个问题,要废了,求助大神~

应该是手势拦截了

` @OverRide
public boolean onInterceptTouchEvent(MotionEvent event) {

    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            mDownX = event.getX();
            break;
        case MotionEvent.ACTION_MOVE:
            // 优化侧滑的逻辑,不要一有稍微的滑动就被ViewDragHelper拦截掉了
            if (event.getX() - mDownX < mSlidDistantX) {
                return false;
            }
            break;
    }`

修改下SlideBackLayout代码里面的mSlidDistantX的值

源码里本来是有这段代码的,并且我增大了mSlidDistantX的值,还是很容易退出,尤其是列表加载下一页,或是快速滑动列表,webview都控件的时候。现在头大了~有其他办法没

设成边缘滑动返回。。。

我是想这样,可是xx产品,你懂得~ 大神真的无解了吗?

你弄个demo我看下呗 这样说我也找不到问题所在

我直接集成在项目里的,在上下能滑动的页面,只要上滑分页等待加载数据的时候(手势方向是向右上方的),很容易把手势识别为水平方向的,这样就无意间触发了返回,就这么个场景,哭~。有没有办法降低快速返回的灵敏度呢

把y坐标限制加上去 如果y的位移超过多少 也不给滑动返回 当前只是做了x位移的判断

public boolean onInterceptTouchEvent(MotionEvent event) {

    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            mDownX = event.getX();
            mDownY = event.getY();
            break;
        case MotionEvent.ACTION_MOVE:
            // 优化侧滑的逻辑,不要一有稍微的滑动就被ViewDragHelper拦截掉了
            if (event.getX() - mDownX  < mSlidDistantX) {
                return false;
            }
            if((event.getY() - mDownY) > (event.getX() - mDownX) ){
                LogUtil.i("aaaa","test----1");
                return false;
            }
            if((event.getY() - mDownY) > 3 * mSlidDistantX){
                LogUtil.i("aaaa","test----2");
                return false;
            }
            break;

大过年的也不让你闲着,真是很抱歉。回题~
是这个意思吗,我这也加了判断,这俩log都没有生效,还是很容易切出去。麻烦您给指导一下,或者直接优化一下源码可好?多谢

你应该把xy坐标的判断合在一起把

分开判断log都没有打出来,和一块更不行了,我是先放在一块的,之后拆分的。方便的话能加下微信或QQ吗?号码都是813196526,或者我加您一下,麻烦了~

377793729 最好你能拆出一个demo我看看