Android之ScrollBar

无论是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的以下方法

@Override
protected int computeVerticalScrollExtent() {
	return 1;
}
	
@Override
protected 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);
}

如此即可~

示例源码

你可能感兴趣的:(android,scrollbar)