Программно узнать размер полосы прокрутки - PullRequest
0 голосов
/ 26 октября 2018

Я использую пользовательский вид, к которому добавляются полосы прокрутки, например:

setHorizontalScrollBarEnabled(true);
setVerticalScrollBarEnabled(true);

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

Есть ли способ узнать толщину полос прокрутки в пикселях? Для вертикальной полосы прокрутки я хотел бы узнать ширину, а для горизонтальной полосы прокрутки я бы хотел узнать высоту, как в пикселях.

Есть ли способ сделать это программно?

1 Ответ

0 голосов
/ 26 октября 2018

Чтобы ответить на мой собственный вопрос, есть несколько способов получить размер полосы прокрутки программно:

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

Интересно, что только последние два сработали для меня и вернули правильный размер (8 пикселей).Два верхних вернули 20 пикселей, которые не соответствовали фактическому размеру полосы прокрутки в 8 пикселей.Возможно, это связано с тем, что я программным образом добавляю полосы прокрутки в пользовательское представление довольно необычным способом (см. здесь ).В любом случае, использование getHorizontalScrollbarHeight() и getVerticalScrollbarWidth() решило проблему для меня.

...