Пустое пространство в нижней части WebView в Android - PullRequest
3 голосов
/ 25 октября 2011

Я разрабатываю приложение для Android и загружаю один iframe карт Google в WebView, как показано ниже:

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

Я посмотрел на этот, который звучит одинаково:

Проблема с дополнительным пространством нанижняя часть Android Webview

но у меня это не сработало.Также пробовал некоторые другие вещи, о которых я читал, например:

webView.getSettings().setUseWideViewPort(true);

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

, но ничего не получалось.Любая идея?

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 21 июня 2012

Я вижу, что элемент по ссылке, которую вы разместили, имеет нижнее поле 14px - может, это так? Вы можете устранить его, используя фрагмент JavaScript в вашем WebView после загрузки страницы, например:

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, на всякий случай.

0 голосов
/ 20 июля 2015

Другие ответы у меня не сработали, но это сработало:

webView.loadUrl("javascript:(function () {document.getElementsByTagName('body')[0].style.marginBottom = '0'})()");
0 голосов
/ 25 июня 2012

Это может быть проблема с вашим XML.

Можете ли вы проверить, что ваш WebView не находится внутри ScrollView или чего-то, что имеет встроенный свиток.Это может привести к появлению лишних пробелов.

0 голосов
/ 25 июня 2012

Установите нижнее и правое поля равными 0:

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