2013-03-16 69 views
3

我目前有一个问题与Android WebView。 该网页视图目前初始化这样的:Android的webview问题与SINGLE_COLUMN模式

_post_WebView = (WebView) view.findViewById(R.id.post_webview); 
_post_WebView.setBackgroundColor(Color.WHITE); 
_post_WebView.setWebViewClient(new PostWebViewClient()); 
_post_WebView.getSettings().setBuiltInZoomControls(true); 
_post_WebView.getSettings().setSupportZoom(true); 
_post_WebView.getSettings().setPluginState(PluginState.ON); 
_post_WebView.getSettings().setJavaScriptEnabled(true); 
_post_WebView.getSettings().setRenderPriority(RenderPriority.HIGH); 
_post_WebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); 
_post_WebView.setWebChromeClient(new WebChromeClient() {}); 
_post_WebView.getSettings().setUseWideViewPort(false); 
_post_WebView.getSettings().setLoadWithOverviewMode(true); 
_post_WebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); 

该web视图用于显示从服务器检索的HTML字符串。 (使用loadData方法)。现在问题在于,在SINGLE_COLUMN模式下,图片和文字在宽度和高度上的调整都适当,但嵌入的YouTube视频在宽度上调整大小时,不会在高度上调整大小,因此只显示黑色框。

LayoutAlgorithm.NORMAL一切工作正常。 如何确保YouTube视频在SINGLE_COLUMN算法中得到适当调整?

的YouTube视频嵌入这样的:

<iframe allowfullscreen="" frameborder="0" height="315" width="420" src="YOUTUBE_VIDEO_LINK"></iframe> 
+0

你解决了这个问题吗? – Zookey 2013-07-22 18:16:07

+0

是的,我做到了。我已经添加了我的答案。 – 2013-07-23 05:15:21

回答

4

我终于去,并通过使用loadDataWithBaseURL(null, htmlString, "text/html", "utf-8", null)代替loadData(htmlString,"text/html","utf-8"),同时增加了100%max-width财产和汽车widthheight属性来使用CSS不同iframe解决它:

htmlString = "<html><head><style>iframe {max-width: 100%; width:auto; height: auto;}</style></head><body>"+htmlString+"</body></html>"; 

这不是最干净的方式,但它的工作原理。

如果与布局算法NARROW_COLUMNS一起使用,此方法也应该可以工作。