0

Android中有没有一种方法可以获取整个'ScrollView'的高度?

我尝试了“layout.getMeasuredHeight()”,但它只给出了可见区域的高度。

4

2 回答 2

3

你想要 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()视图以安排视图树的另一个测量和布局。

于 2013-07-11T14:54:13.280 回答
1

一个 ScrollView 总是只有一个孩子,所以使用:

ScrollView.getChildAt(0).getHeight();

应该管用。

于 2013-07-11T15:01:09.613 回答