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

时间:2016-02-23 20:17:40

标签: android horizontalscrollview

我正在使用水平滚动视图的拇指来指示用户所在的页面。我想要发生的是拇指宽度是屏幕宽度/页面数量,这是大型设备上发生的情况。当我切换到手机时出现问题:拇指宽度不再是我不能使用的大小。

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

1 个答案:

答案 0 :(得分:0)

所以我明白了。您无法更改实际的滚动视图滚动条,因为您需要ADK中不属于ScrollBarDrawable的类。所以我所做的是覆盖了scrollview并绘制了一个自定义滚动条。还要确保禁用scrollviews默认滚动条(View.setVericalScrollbarEnabled(boolean)或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);
}

希望这有助于其他人!