Bug系列:SwipeRefreshLayout嵌套ViewPa

2020-08-11  本文已影响0人  Antonylr

解决方案参考如下:
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.

上一篇下一篇

猜你喜欢

热点阅读