屏蔽ScrollView滑動操作,如下,會用到ViewConfiguration這個類,這個類可以獲取到用戶是否為滑動操作的臨界值。
代碼如下:
package com.xx.uikit.view; import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.ViewConfiguration; import android.widget.ScrollView; /** * Copyright © 2016 edaixi. All Rights Reserved. * Author: wei_spring * Date: 16/8/19 * Email: * Function: 自定義Scrollview,攔截滑動事件,解決與Recycler的滑動沖突 */ public class RecyclerScrollview extends ScrollView { private int downY; private int mTouchSlop; public RecyclerScrollview(Context context) { super(context); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } public RecyclerScrollview(Context context, AttributeSet attrs) { super(context, attrs); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } public RecyclerScrollview(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } @Override public boolean onInterceptTouchEvent(MotionEvent e) { int action = e.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: downY = (int) e.getRawY(); break; case MotionEvent.ACTION_MOVE: int moveY = (int) e.getRawY(); if (Math.abs(moveY - downY) > mTouchSlop) { return true; } } return super.onInterceptTouchEvent(e); } }