2013-07-11 2 views

ответ

2

Требуется высота дочернего элемента 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() на вид, чтобы запланировать еще одно измерение & расположение дерева вида.

+0

Благодарим вас за ответ. Но он не дает точной высоты. Я конвертирую ScrollView в png. Хотя использование высоты дочернего объекта дает лучший результат, то, используя высоту ScrollView, высота по-прежнему не правильная. Он не охватывает весь взгляд! Пожалуйста, порекомендуйте. – Ahmed

+0

Одна идея, которая может сработать (хотя, возможно, немного взломать), попросит View измерить себя. Я добавлю это к своему ответу. – Karakuri

1

ScrollView всегда есть только один ребенок, так что с помощью:

ScrollView.getChildAt(0).getHeight(); 

должен работать.