Android API 全解析(一):interface ScrollingView

接口说明:

为其实现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,都实现了此接口

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容