屏蔽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);
}
}
