Android: общая высота ScrollView - PullRequest
       18

Android: общая высота ScrollView

36 голосов
/ 31 августа 2010

У меня есть собственный ScrollView (расширенный android.widget.ScrollView), который я использую в своем макете.Я хочу измерить общую высоту содержимого этого прокрутки.getHeight () и getMeasuredHeight () не дают мне правильные значения (слишком большие числа).

Справочная информация: я хочу определить, как далеко прокрутил пользователь.Я использую onScrollChanged, чтобы получить значение X, но мне нужно знать процент, поэтому мне потребуется общая высота полосы прокрутки.

Большое спасибо!Erik

Ответы [ 2 ]

91 голосов
/ 14 февраля 2011

ScrollView всегда имеет 1 дочерний элемент.Все, что вам нужно сделать, это получить рост ребенка, чтобы определить общий рост:

int totalHeight = scrollView.getChildAt(0).getHeight();
4 голосов
/ 10 октября 2017

См. Источник ScrollView. К сожалению, этот метод является закрытым, но вы можете скопировать его в свой собственный код. Обратите внимание, что другие ответы не учитывают заполнение

private int getScrollRange() {
    int scrollRange = 0;
    if (getChildCount() > 0) {
        View child = getChildAt(0);
        scrollRange = Math.max(0,
                child.getHeight() - (getHeight() - mPaddingBottom - mPaddingTop));
    }
    return scrollRange;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...