我面临与其他开发人员在WebView中垂直包装文本相同的问题。我已经检查并尝试了here给出的一些提示。
下面的图片只是一个带有长文本(html)的webview,它是垂直显示的。我希望以多行显示它。
我也有一些线索,我们可以通过在webview中使用一些javascript来解决这个问题,但仍然无法做到。我仍然不知道编写javascript代码的内容和位置,以及如何将其推送到html / webview,以便以适当的多行格式显示文本。
这个问题多次提出过,但遗憾的是仍然没有正确答案。
我目前的代码如下:
getSettings().setJavaScriptEnabled(true);
getSettings().setDomStorageEnabled(true); // I think you will need this one
getSettings().setPluginState(PluginState.ON);
getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);// no need I think
getSettings().setLoadWithOverviewMode(true);
getSettings().setUseWideViewPort(true);
getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
在webview中填充数据(例如,这里的descView是WebView):
List<Element> elements = htmlObj.getElements();
if( elements.size() > 0 && elements.get(0).getHtml() != null && !elements.get(0).getHtml().equals("")) {
String htmlWrapper = null;
if(ApplicationContext.getInstance().getApplication() == null) {
htmlWrapper = CoreSettings.HTML_WRAPPER;
} else {
Application application = ApplicationContext.getInstance().getApplication();
htmlWrapper = application.getGlobalStyle().getHtmlWrapper();
}
if(htmlWrapper != null) {
descView.loadData(htmlWrapper.replace("{{content}}",WebUtils.linkifyHtml( elements.get(0).getHtml())), "text/html; charset=utf-8", "UTF-8");
} else {
descView.loadData(WebUtils.linkifyHtml( elements.get(0).getHtml()).toString(), "text/html; charset=utf-8", "UTF-8");
}
}
答案 0 :(得分:0)
使用此:
如果没有定义WideViewport
,请使用Zoom out
和viewPort
。
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
settings.setLayoutAlgorithm(LayoutAlgorithm.TEXT_AUTOSIZING);