如何更改 HorizontalScrollView 中拇指的宽度?
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);
}
希望这对其他人有帮助!
我正在使用水平滚动视图的拇指来指示用户所在的页面。我想要发生的是拇指宽度是页面的 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);
}
希望这对其他人有帮助!