【发布时间】:2013-07-09 21:53:48
【问题描述】:
Android中是否有获取整个'ScrollView'高度的方法?
我尝试了“layout.getMeasuredHeight()”,但它只给出了可见区域的高度。
【问题讨论】:
标签: android android-layout height scrollview
Android中是否有获取整个'ScrollView'高度的方法?
我尝试了“layout.getMeasuredHeight()”,但它只给出了可见区域的高度。
【问题讨论】:
标签: android android-layout height scrollview
你想要 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();
应该可以。
【讨论】: