如何更改 Horizo​​ntalScrollView 中拇指的宽度?

How to change the width of the thumb in a HorizontalScrollView?

我正在使用水平滚动视图的拇指来指示用户所在的页面。我想要发生的是拇指宽度是页面的 screenwidth/number,这是在较大设备上发生的情况。当我切换到 phone 时出现问题:拇指宽度不再是我无法使用的更大尺寸。

有没有办法改变水平滚动视图中拇指的宽度(或垂直滚动​​视图中的高度)?

所以我想通了。您无法更改实际的滚动视图滚动条,因为您需要 class ScrollBarDrawable,它不在 ADK 中。所以我所做的是覆盖滚动视图并绘制一个自定义滚动条。还要确保禁用 scrollviews 默认滚动条(View.setVericalScrollbarEnabled(布尔值)或 android:scrollbars="none")

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w,h,oldw,oldh);
    width = getWidth() - getPaddingLeft() - getPaddingRight();

    //you need this to get the total width of the scrollview (with all of the children) 
    measure(w,h);
    totalWidth = getMeasuredWidth();
}



@Override
public void onDraw(Canvas canvas){
    super.onDraw(canvas);

    float xPer = getScrollX() / totalWidth;
    canvas.drawRect(
            (xPer * width) + getScrollX(),
            getHeight() - scrollBarHeight,
            //scroll position   //width of the bar      //offset in the actual canvas
            ((xPer * width) + (width/(totalWidth/width)) + getScrollX(),
            getHeight(), paint);
}

希望这对其他人有帮助!