Android中有没有一种方法可以获取整个'ScrollView'的高度?
我尝试了“layout.getMeasuredHeight()”,但它只给出了可见区域的高度。
Android中有没有一种方法可以获取整个'ScrollView'的高度?
我尝试了“layout.getMeasuredHeight()”,但它只给出了可见区域的高度。
你想要 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();
应该管用。