解决SwipeToRefresh嵌套ViewPager等左右滑动和下拉刷新冲突的方案
自定义SwipeToRefresh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| import android.content.Context; import android.support.v4.widget.SwipeRefreshLayout; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.ViewConfiguration; * 解决SwipeToRefresh嵌套ViewPager等左右滑动和下拉刷新冲突的方案 */ public class HorizontalSwipeToRefresh extends SwipeRefreshLayout { private int mTouchSlop; private float mPrevX; public HorizontalSwipeToRefresh(Context context, AttributeSet attrs) { super(context, attrs); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } @Override public boolean onInterceptTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mPrevX = MotionEvent.obtain(event).getX(); break; case MotionEvent.ACTION_MOVE: final float eventX = event.getX(); float xDiff = Math.abs(eventX - mPrevX); if (xDiff > mTouchSlop) { return false; } } return super.onInterceptTouchEvent(event); } }
|
本文地址:
http://itdais.com/2016/08/25/SwipeToRefresh滑动冲突解决/