以编程方式找出滚动条大小

时间:2018-10-26 15:37:39

标签: android android-scroll

我使用的自定义视图中添加了滚动条,如下所示:

setHorizontalScrollBarEnabled(true);
setVerticalScrollBarEnabled(true);

TypedArray a = context.obtainStyledAttributes(R.styleable.View);
initializeScrollbars(a);
a.recycle()

现在是否有办法找出以像素为单位的滚动条的厚度?对于垂直滚动条,我想找出宽度,对于水平滚动条,我想找出高度,均以像素为单位。

有没有办法通过编程方式做到这一点?

1 个答案:

答案 0 :(得分:0)

要回答我自己的问题,有几种方法可以通过编程方式获取滚动条的大小:

View.getScrollBarSize() [API 16]
ViewConfiguration.getScaledScrollBarSize() [API 3]
View.getHorizontalScrollbarHeight()
View.getVerticalScrollbarWidth()

有趣的是,只有后两个为我工作,并返回了正确的尺寸(8像素)。上方的两个返回20个像素,与实际的滚动条尺寸8个像素不匹配。可能与以下事实有关:我以一种非常规的方式以编程方式将滚动条添加到自定义视图中(请参见here)。无论如何,使用getHorizontalScrollbarHeight()getVerticalScrollbarWidth()为我解决了这个问题。