Есть ли способ получить высоту всего ScrollView?
Есть ли способ в Android, чтобы получить высоту всего "ScrollView"?
Я попытался "layout.getMeasuredHeight()", но он дает высоту только видимой области.
2 ответа
Вы хотите высоту дочернего элемента ScrollView. Пытаться scrollView.getChildAt(0).getMeasuredHeight()
,
РЕДАКТИРОВАТЬ
Возможно, вы могли бы попытаться использовать саму меру View и задать ей показатель мер, который позволит ей использовать столько места, сколько он хочет. Что-то вроде этого:
int width = ... // get screen width;
int height = 65536; // arbitrarily large value
final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST);
final int heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST);
view.onMeasure(widthMeasureSpec, heightMeasureSpec);
// now get the height
int measuredHeight = view.getMeasuredHeight();
Полное раскрытие: я не знаю, будет ли это работать или как это может повлиять на ваше приложение. Есть побочный эффект вызова этого метода, который состоит в том, что измеренные размеры представления установлены. Если это возможно, вы можете попытаться создать отдельное дублированное представление и измерить его; или, после того как вы сделаете этот замер, позвоните requestLayout()
в представлении, чтобы запланировать другое измерение и расположение дерева представления.
ScrollView всегда имеет только одного дочернего элемента, поэтому с помощью:
ScrollView.getChildAt(0).getHeight();
должно сработать.