滚动 Scroller OverScroller

原文: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指的是一种手势,手指在屏幕上快速滑动后离开屏幕,这时视图列表会进行一个快速的滚动。

posted on 2020-05-14 11:13  赵子隆  阅读(703)  评论(0编辑  收藏  举报

导航