我正在使用一个自定义视图,添加滚动条如下:
setHorizontalScrollBarEnabled(true);
setVerticalScrollBarEnabled(true);
TypedArray a = context.obtainStyledAttributes(R.styleable.View);
initializeScrollbars(a);
a.recycle()
现在有办法找出滚动条的像素厚度吗?对于垂直滚动条,我想找出宽度,对于水平滚动条,我们想找出高度,两者都以像素为单位。
有没有一种方法可以通过编程实现这一点?
要回答我自己的问题,有几种方法可以通过编程获得滚动条大小:
View.getScrollBarSize() [API 16]
ViewConfiguration.getScaledScrollBarSize() [API 3]
View.getHorizontalScrollbarHeight()
View.getVerticalScrollbarWidth()
有趣的是,只有后两者对我有效,并返回了正确的大小(8像素(。上面两个返回了20个像素,与8个像素的实际滚动条大小不匹配。也许这与我正在以一种相当非正统的方式以编程方式向自定义视图添加滚动条有关(请参阅此处(。无论如何,使用getHorizontalScrollbarHeight()
和getVerticalScrollbarWidth()
为我解决了这个问题