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

时间:2013-07-11 14:47:55

标签: android android-layout height scrollview

Android中是否有方法可以获得整个“ScrollView”的高度?

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

2 个答案:

答案 0 :(得分:3)

您想要ScrollView的孩子的高度。试试scrollView.getChildAt(0).getMeasuredHeight()

修改

您可以尝试使用View测量本身,并为其提供一个measurepec,让它可以使用尽可能多的空间。像这样:

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()以安排其他措施&视图树的布局。

答案 1 :(得分:1)

ScrollView始终只有一个孩子,所以使用:

ScrollView.getChildAt(0).getHeight();

应该有用。