直接上代码,原理是利用Activity的dispatchTouchEvent进行全局触摸事件拦截,并且通过标志位拦截事件,避免在触发边缘侧滑时引起其他滑动控件的滑动。
//从dispatch拦截事件
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return gestureHandler.doEventFling(ev) || super.dispatchTouchEvent(ev);
}
class GestureHandler {
//屏幕宽高
int sWidth = DisplayUtil.getInstance().getWidth();
int sHeight = DisplayUtil.getInstance().getHeight();
//按下的点
PointF down;
//Y轴滑动的区间