scroller的使用

Scroller是一個幫助view滾動的輔助類,在使用它之前,用戶需要通過startScroll來設置滾動的參數,即起始點座標和xy軸上要滾動的舉例。Scroller它封裝了滾動時間、要滾動的目標x軸和y軸,以及在每個時間內veiw應該滾動到的xy軸的座標點,這樣用戶就可以在有效的滾動週期內通過Scroller的getCurx和getCury來獲取當前時刻view應該滾動的位置,然後通過調用view的scrollTO或者scrollBy方法進行滾動。我們只需要複寫view類的computeScroll方法,該方法會在view繪製時調用,在裏面調用Scroller的computeScrollOffset來判斷滾動是否完成。最後調用view的postInvalidate或者invalidate以實現view的重繪,直至computeScrollOffset返回false。即滾動結束。
舉例如下:
public class ScrollLayout extends FrameLayout{
Scroller mScroller;
public ScrollLayout(Context context){
super(context);
mScroller = new Scroller(context);
}
public void computeScroll(){
if(mScroller.computeScrollOffset()){
this.scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
this.postInvalidate();
}
}
public void scrollTo(int y){
mScroller.startScroll(getScrollX(), getScrollY(), 0, y);
this.invalidate();
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章