在Android的底部额外的空间问题Webview

问题描述:

我有我的应用程序中使用loadData()方法显示html内容的Webview。问题在于HTML内容在底部显示了一些额外的空间,我不明白为什么白色空间即将到来。此问题仅在Motorola Milestone设备(Android 2.1)中发生。请有人帮忙解决这个问题。在Android的底部额外的空间问题Webview

enter image description here

由于事先 Rajapandian

最后我找到了我自己的问题的答案,我需要将它添加到网页视图之前meta标签追加我的HTML内容一起。请在下面找到

String s="<head><meta name='viewport' content='target-densityDpi=device-dpi'/></head>";    
webview.loadDataWithBaseURL(null,s+htmlContent,"text/html" , "utf-8",null);  

代码做的伎俩,请参考更多详细信息,下面的链接meta标签内的视口属性。

Using Viewport in Android Webview

问候, Rajapandian

+0

好的一个非常使用全.. – NagarjunaReddy

更好地使用width属性也是。因为一些设备考虑。

如:

String s="<head><meta name=viewport content=target-densitydpi=medium-dpi, width=device-width/></head>";    

本博客文章解决了我的问题。我认为这会有所帮助。 http://capdroid.wordpress.com/2014/08/07/resizing-webview-to-match-the-content-size/

private void setupWebView() { 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      webView.loadUrl("javascript:MyApp.resize(document.body.getBoundingClientRect().height)"); 
      super.onPageFinished(view, url); 
     } 
    }); 
    webView.addJavascriptInterface(this, "MyApp"); 
} 

@JavascriptInterface 
public void resize(final float height) { 
    MyActivity.this.runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      webView.setLayoutParams(new LinearLayout.LayoutParams(getResources().getDisplayMetrics().widthPixels, (int) (height * getResources().getDisplayMetrics().density))); 
     } 
    }); 
} 
+0

这实际上解决了在4.4或以上版本的白色空间的问题,但它也将定位web视图顶部,所以你必须将它定位在它应该去的是屏幕上 – sandalone