【问题标题】:Is there a method to get the height of the entire 'ScrollView'?有没有办法获取整个 'ScrollView' 的高度?
【发布时间】:2013-07-09 21:53:48
【问题描述】:

Android中是否有获取整个'ScrollView'高度的方法?

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

【问题讨论】:

    标签: android android-layout height scrollview


    【解决方案1】:

    你想要 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 转换为 png。虽然,使用孩子的高度比使用 ScrollView 高度本身提供更好的结果,但高度仍然不正确。它往往不会覆盖整个视图!请指教。
    • 一个可能行得通的想法(虽然可能有点老套)是要求 View 进行自我测量。我会把它添加到我的答案中。
    【解决方案2】:

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

    ScrollView.getChildAt(0).getHeight();
    

    应该可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-13
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 2021-05-21
      • 1970-01-01
      • 2019-09-08
      • 2010-11-13
      相关资源
      最近更新 更多