Android中WebView底部的空白区域

时间:2011-10-24 20:55:28

标签: android iframe webview whitespace

我正在开发一个Android应用程序,我正在WebView中加载一个谷歌地图iframe,就像这样:

http://maps.google.es/maps/empw?url=http:%2F%2Fmaps.google.es%2Fmaps%3Ff%3Dq%26source%3Ds_q%26hl%3Des%26geocode%3D%26q%3Dmadrid%26aq%3D%26sll%3D40.396764,-3.713379%26sspn%3D11.856886,23.269043%26vpsrc%3D0%26ie%3DUTF8%26hq%3D%26hnear%3DMadrid,%2BComunidad%2Bde%2BMadrid%26t%3Dm%26z%3D10%26ll%3D40.416691,-3.700345%26output%3Dembed&hl=es&gl=es

它在Android模拟器中正确显示,但是当我在真实设备中尝试时,屏幕底部会出现相当大的空白区域,因此您无法看到整个iframe。我试过两个手机,一个用android 2.2,另一个用android 2.3

我看过这个听起来一样的东西:

Problem with extra space at the bottom of android Webview

但它对我不起作用。还尝试了一些我读过的其他内容:

webView.getSettings().setUseWideViewPort(true);

webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading (WebView view, String url) {
            view.loadUrl(url);
            return false;
        }
    });

但没有任何效果。任何的想法?

提前致谢。

4 个答案:

答案 0 :(得分:2)

我可以看到< body>您发布的链接元素的底部边距为14px - 也许就是这样?加载页面后,您可以在WebView中使用JavaScript代码段消除它,如下所示:

myWebView.loadUrl("javascript:document.getElementsByTagName('body')[0].style.marginBottom = '0px'");

另外,右边有一个44px的边距,如果你想摆脱那个,也应该是这样的:

myWebView.loadUrl("javascript:document.getElementsByTagName('body')[0].style.marginBottom = '0px';document.getElementsByTagName('body')[0].style.marginRight = '0px';");

此外,为了防范您的应用,您可能需要将所有四个边距设置为0,以防万一。

答案 1 :(得分:0)

将下边距和右边距设置为0:

webView.loadUrl("javascript:document.body.style.marginBottom=document.body.style.marginBottom= '0px'");

答案 2 :(得分:0)

这可能是您XML的问题。

您能否检查WebView是否在ScrollView内或其内置滚动内容的任何内容。它可能会产生额外的空白区域。

答案 3 :(得分:0)

其他答案对我没有用,但确实如此:

webView.loadUrl("javascript:(function () {document.getElementsByTagName('body')[0].style.marginBottom = '0'})()");