美文网首页
Bug系列:SwipeRefreshLayout嵌套ViewPa

Bug系列:SwipeRefreshLayout嵌套ViewPa

作者: Antonylr | 来源:发表于2020-08-11 11:05 被阅读0次

解决方案参考如下:
https://www.jianshu.com/p/75d29ba99271

   private void startDragging(float y) {
        final float yDiff = y - mInitialDownY;
        if (yDiff > mTouchSlop && !mIsBeingDragged) {
            mInitialMotionY = mInitialDownY + mTouchSlop;
            mIsBeingDragged = true;
            mProgress.setAlpha(STARTING_PROGRESS_ALPHA);
        }
    }

在startDragging方法中,如果滑动位移y坐标大于TouchSlop(通过getScaleTouchSlop()方法返回一个滑动距离),那就将mIsBeingDragged[是否拖动]设为true,所以罪魁祸首正是在此,因为我们滑动ViewPager的时候,无法保证完全水平的滑动,所以会引起ViewPager与SwipeRefreshLayout的滑动事件冲突,最终导致无法滑动ViewPager.

相关文章

网友评论

      本文标题:Bug系列:SwipeRefreshLayout嵌套ViewPa

      本文链接:https://www.haomeiwen.com/subject/ybmedktx.html