2017-04-21 117 views
0

我正面臨着與其他開發人員在WebView中垂直換行的相同問題。我已經檢查並嘗試了一些提示herewebview的自動文本換行

下面的圖像只是一個長文本(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); 

和填充在網頁視圖類似的數據(這裏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

+0

試試這個http://stackoverflow.com/questions/19835754/how-to-make-text-fit-to-screen-text-wrap-in-webview-with-kitkat –

+0

嘗試的getSettings() .setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); – Tasneem

+0

感謝您的回覆。不幸的是,這兩種解決方案我嘗試過,但沒有幫助 – Ranjit

回答

0

使用此:

使用WideViewportZoom out如果沒有定義viewPort

settings.setUseWideViewPort(true); 

settings.setLoadWithOverviewMode(true); 

settings.setLayoutAlgorithm(LayoutAlgorithm.TEXT_AUTOSIZING); 
+0

它不起作用 – Ranjit