我使用的自定义视图中添加了滚动条,如下所示:
setHorizontalScrollBarEnabled(true);
setVerticalScrollBarEnabled(true);
TypedArray a = context.obtainStyledAttributes(R.styleable.View);
initializeScrollbars(a);
a.recycle()
现在是否有办法找出以像素为单位的滚动条的厚度?对于垂直滚动条,我想找出宽度,对于水平滚动条,我想找出高度,均以像素为单位。
有没有办法通过编程方式做到这一点?
答案 0 :(得分:0)
要回答我自己的问题,有几种方法可以通过编程方式获取滚动条的大小:
View.getScrollBarSize() [API 16]
ViewConfiguration.getScaledScrollBarSize() [API 3]
View.getHorizontalScrollbarHeight()
View.getVerticalScrollbarWidth()
有趣的是,只有后两个为我工作,并返回了正确的尺寸(8像素)。上方的两个返回20个像素,与实际的滚动条尺寸8个像素不匹配。可能与以下事实有关:我以一种非常规的方式以编程方式将滚动条添加到自定义视图中(请参见here)。无论如何,使用getHorizontalScrollbarHeight()
和getVerticalScrollbarWidth()
为我解决了这个问题。