Android之ScrollBar

来源:互联网 发布:oracle数据库死锁解决 编辑:程序博客网 时间:2024/04/30 20:38

无论是ListView还是ScrollView等视图都有提供滚动条设置功能。ScrollBar主要包括以下两项内容:

  • scrollbarThumb(滑块)
  • scrollbarTrack(滚动条)

当然还有其他诸如scrollbarStyle、fadeScrollbars、fadingEdge等设置,这一切文档或网上均可查询到。

Android的ScrollBar默认会根据Item项目的数量、视图的宽高自动调整滑块的高度,那当你需要固定滑块高度时该怎么处理呢?比如要实现如下效果:

使用.9图片明显是不行的,因为滑块图片被拉伸了那么当item项少时,滑块上方将留出大量的空白。经本人验证可按如下步骤实现以上需求:

  • 首先需要在xml中设置视图的如下属性

android:scrollbarThumbVertical="@drawable/bf_slidel_arrows"android:scrollbarTrackVertical="@drawable/bf_slider_bar"

其中bf_slidel_arrows是自定义的滑块图片,bf_slider_bar是滚动条图片。
  • 其次重载ListView或ScrollView的以下方法

@Overrideprotected int computeVerticalScrollExtent() {return 1;}@Overrideprotected int computeVerticalScrollOffset() {int sRange = super.computeVerticalScrollRange();int sExtent = super.computeVerticalScrollExtent();int range = sRange - sExtent;if(range == 0){return 0;}return (int) (sRange * super.computeVerticalScrollOffset() * 1.0f / range);}

如此即可~

示例源码

0 1
原创粉丝点击