ScrollView添加惯性滑动

xiaoxiao2021-02-28  69

自定义view继承自scrollview,重写onInterceptTouchEvent()判断滑动事件

/** * 惯性滑动 * */ public class PullableScrollView extends ScrollView implements Pullable { private int downX; private int downY; private int mTouchSlop; public PullableScrollView(Context context) { super(context); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } public PullableScrollView(Context context, AttributeSet attrs) { super(context, attrs); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } public PullableScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } @Override public boolean isGetTop() { if (getScrollY() <= 0) return true; else return false; } @Override public boolean isGetBottom() { if (getChildCount() == 0) { return true; } if (getScrollY() >= (getChildAt(0).getHeight() - getMeasuredHeight())) return true; else return false; } @Override public boolean onInterceptTouchEvent(MotionEvent e) { int action = e.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: downX = (int) e.getRawX(); 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); }

转载请注明原文地址: https://www.6miu.com/read-77198.html

最新回复(0)