方向上的 WebView 已更改

WebView on orientation changed

我有一个 iframe 看起来像这样:

<iframe width="100%" height="100%" src="-----source----" frameborder="0" allowfullscreen></iframe>

并在 onConfigurationChanged 中自行处理方向。随着布局的改变,高度和宽度也会发生变化。问题是旋转后 iframe (不时) 没有填满整个 webview.

webview 设置:

mWebView.setLayoutParams(new LinearLayout
                .LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
mWebView.setScrollContainer(false);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.setInitialScale(1);
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
mWebView.setScrollbarFadingEnabled(false);

看起来像这样:

如何强制它填充所有 webview 内容?

p.s:当我加载 hppts 页面时它工作正常,只有 iframes 有问题。

在 android webview 中,您的百分比有问题。 我的意思是,如果您通过示例声明一个 div/iframe,如下所示:

iframe{
    height: 100%;
    width: 100%;
}

这将不起作用,因为如果您在 widthheight 上同时使用 %。 你会得到一个小屏幕,就像问题中的照片。

那么如何解决这个问题呢?您至少需要一个以 px 为单位的声明。 您需要在 px.

中声明 widthheight

举几个例子:

iframe{
        height: 1500px;
        width: 100%;
    }

iframe{
        height: 100%;
        width: 1500px;
    }