Есть ли способ в Android получить высоту всего «ScrollView»?Есть ли способ получить высоту всего «ScrollView»?
Я пробовал 'layout.getMeasuredHeight()', но он дает высоту только видимой области.
Есть ли способ в Android получить высоту всего «ScrollView»?Есть ли способ получить высоту всего «ScrollView»?
Я пробовал 'layout.getMeasuredHeight()', но он дает высоту только видимой области.
Требуется высота дочернего элемента ScrollView. Попробуйте scrollView.getChildAt(0).getMeasuredHeight()
.
EDIT
Вы могли бы попробовать, имеющий View измерить себя и дать ему measurespec, что позволяет его использовать столько места, сколько он хочет. Что-то вроде этого:
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();
должен работать.
Благодарим вас за ответ. Но он не дает точной высоты. Я конвертирую ScrollView в png. Хотя использование высоты дочернего объекта дает лучший результат, то, используя высоту ScrollView, высота по-прежнему не правильная. Он не охватывает весь взгляд! Пожалуйста, порекомендуйте. – Ahmed
Одна идея, которая может сработать (хотя, возможно, немного взломать), попросит View измерить себя. Я добавлю это к своему ответу. – Karakuri