Android API 全解析(一):interface ScrollingView

weixin_34292287發表於2016-12-13

介面說明:

為其實現View 新增滾動(scroll)相關的APIs

抽象函式一覽:

//第一組,水平滾動相關
int computeHorizontalScrollRange();
int computeHorizontalScrollOffset();
int computeHorizontalScrollExtent();
//第二組,垂直滾動
int computeVerticalScrollRange();
int computeVerticalScrollOffset();
int computeVerticalScrollExtent();

正名·概念網路

——理解所需明晰的概念
  • 滾動條·scrollbar:略
  • 範圍·range:整個滾動檢視的總長度
  • 滑塊·thumb:略
  • 偏移量·offset:距離起點的距離·長度
  • 大小或區間·extent:可視區域的長度

正名·概念關係

  • 範圍=子view長度相加+總空隙長度
  • 滑塊處於頂部時,偏移量=0
  • 滑塊處於底部時,偏移量+可視區域(extent)=範圍

第一組,水平滾動 相關函式

int computeHorizontalScrollRange();

水平方向上,計算滾動條表示的範圍
範圍可以用任意單位計量,但必須與其他函式所用單位一致
computeHorizontalScrollOffset(); computeHorizontalScrollExtent();
預設範圍:是此檢視的繪圖寬度。
返回值:滾動條表示的總範圍

int computeHorizontalScrollOffset();

水平方向上,計算滾動條滑塊在滾動條範圍中的偏移量。此值用於計算滑塊在軌道中的位置
範圍所用單位需與其它函式一致。
預設偏移量:是此檢視滾動的偏移量。
返回值:滑塊的偏移量

int computeHorizontalScrollExtent();

水平方向上,計算滑塊在滾動條範圍中的大小。此值用於計算滑塊在軌道中所佔的長度(可視區域長度)
範圍所用單位需與其它函式一致。
預設大小:是此檢視的繪圖寬度。
返回值:滑塊的大小(可視區域長度)

第二組,垂直滾動 相關函式

方向改為垂直,其餘同上

例子

RecyclerView
ListView
...
通常為帶有滑動功能的ViewGroup,都實現了此介面

相關文章