webview的自动文本换行

时间:2017-04-21 05:50:03

标签: javascript android html android-webview

我面临与其他开发人员在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");
                }
         }

enter image description here

1 个答案:

答案 0 :(得分:0)

使用此:

如果没有定义WideViewport,请使用Zoom outviewPort

settings.setUseWideViewPort(true);

settings.setLoadWithOverviewMode(true);

settings.setLayoutAlgorithm(LayoutAlgorithm.TEXT_AUTOSIZING);