2011-08-24 101 views
8

我有我的應用程序中使用loadData()方法顯示html內容的Webview。問題在於HTML內容在底部顯示了一些額外的空間,我不明白爲什麼白色空間即將到來。此問題僅在Motorola Milestone設備(Android 2.1)中發生。請有人幫忙解決這個問題。在Android的底部額外的空間問題Webview

enter image description here

由於事先 Rajapandian

回答

13

最後我找到了我自己的問題的答案,我需要將它添加到網頁視圖之前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

1

更好地使用width屬性也是。因爲一些設備考慮。

如:

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

本博客文章解決了我的問題。我認爲這會有所幫助。 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