解決方案參考如下:
http://www.reibang.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坐標(biāo)大于TouchSlop(通過getScaleTouchSlop()方法返回一個滑動距離),那就將mIsBeingDragged[是否拖動]設(shè)為true,所以罪魁禍?zhǔn)渍窃诖?因為我們滑動ViewPager的時候,無法保證完全水平的滑動,所以會引起ViewPager與SwipeRefreshLayout的滑動事件沖突,最終導(dǎo)致無法滑動ViewPager.