原文:https://www.baidu.com/link?url=26iKhqGV7w87fqTiCTCwQc3VPcCbedUpAlddWm3uHsEXAGaeH47xY8QCZNGcORGBAU0cp84aY-IVwQ1apNDZFV8lKnnj7CrTxpiWAl53h7O&wd=&eqid=9b7b7cf50012a866000000065ebcb1d5
Scroller OverScroller只是用于帮助计算滚动距离的类,具体的平移效果是需要自己实现的;
Scroller具体使用方法:
1、mScroller = new Scroller(context);
2、设置开始滚动:mScroller.startScroll(getScrollX(), 0, dx, 0);
3、重写View中的方法,手动平移:
@Override public void computeScroll() { // 第三步,重写computeScroll()方法,并在其内部完成平滑滚动的逻辑 if (mScroller.computeScrollOffset()) { scrollTo(mScroller.getCurrX(), mScroller.getCurrY()); invalidate(); } }
OverScroller:
OverScroller的使用方法一致,但是多了这两个方法:spingBack()和fling()
1、public boolean springBack(int startX, int startY, int minX, int maxX, int minY, int maxY)
startX 和startY很好解释,是起始坐标,minX,maxX,minY,maxY 这4个坐标构成了一个矩形
该方法返回一个boolean,假如View移动到起始位置时,有部分或者全部位于矩形之外则返回true,反之返回false
应用:比如说,一个view在屏幕中怎么移动都不需要滚动,只有拖到屏幕外才会滚动回来。
2、fling
fling指的是一种手势,手指在屏幕上快速滑动后离开屏幕,这时视图列表会进行一个快速的滚动。