如何设置Android WebView的最小高度?

时间:2013-01-09 12:57:33

标签: android android-layout android-webview android-view

我使用多个Web视图并将其添加到布局中,我的结构就像这样

线性布局
|
| ---------------- |
 Webview
| ---------------- |
  Webview
| ---------------- |
  Webview
| ---------------- |

我想为weview设置最小高度,以便所有单元格看起来都相似。

我试过

setMinimumHeight(int minHeight)

但它不起作用。我也检查了

cellLayout.addView(mWebview, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 80));

它完全正常,但它限制值为80。

如果HTML内容超过大小,则会显示滚动。

所以我正在寻找最小高度,所以如果内容超过最小高度,它会自动扭曲内容。

如何设置WebView的最小高度?

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码进行试用。 您可以将以下内容放在WebView的onPageFinished事件中,它可以帮助我在加载html内容后修复对话框高度。

public void onPageFinished(WebView view, String url) {
    ....
    webView.setOnTouchListener(new View.OnTouchListener() {
      @Override
      public boolean onTouch(View v, MotionEvent event) {
        if (webView.getHeight() < currentHeight) {
          currentHeight = webView.getHeight();
        }
        final LayoutParams params = webView.getLayoutParams();
        params.height = currentHeight;
        webView.setLayoutParams(params);
        return false;
      }
    });
}

答案 1 :(得分:0)

 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    int height = getMeasuredHeight();
    int parentHeight = 0;
    if (getParent() != null && getParent() instanceof ViewGroup) {
        parentHeight = ((ViewGroup) getParent()).getHeight();
    }
    if (height < parentHeight) {
        setMeasuredDimension(getMeasuredWidth(), parentHeight);
    }
}

我遇到了同样的问题,我解决了这个问题。希望它可以帮到你。您只需要在WebView中覆盖onMeasure函数,并将parentHeight替换为您需要的最小高度。