实现RecycleView自定义,完成侧滑菜单功能,主要涉及以下几点:
1、VelocityTracker的使用
2、Scroller的使用
3、onInterceptTouchEvent和onTouchEvent之间的关系
一、VelocityTracker的使用
VelocityTracker是一个跟踪触摸事件滑动速度的帮助类,用于实现flinging以及其它类似的手势。它的原理是把触摸事件 MotionEvent 对象传递给VelocityTracker的addMovement(MotionEvent e);方法,然后分析MotionEvent 对象在单位时间类发生的位移来计算速度。你可以使用getXVelocity() 或getXVelocity()获得横向和竖向的速率到速率时,但是使用它们之前请先调用computeCurrentVelocity(int)来初始化速率的单位 。
参考代码如下:
@Override public boolean onInterceptTouchEvent(MotionEvent e) { int x = (int) e.getX(); int y = (int) e.getY(); addVelocityEvent(e); switch (e.getAction()){ case MotionEvent.ACTION_DOWN: //若Scroller处于动画中,则终止动画 if (!mScroller.isFinished()){ mScroller.abortAnimation(); } mFirstX = x; mFirstY