需要在 HTML webview 中显示文本格式的数据,如 Stack Overflow

Posted

技术标签:

【中文标题】需要在 HTML webview 中显示文本格式的数据,如 Stack Overflow【英文标题】:Need to display Text formatted data in HTML webview like Stack Overflow 【发布时间】:2016-06-13 22:15:55 【问题描述】:

我有纯文本数据,其格式为间距线等。但我想将此文本显示为 html?如何才能做到这一点。

[American Thinker]

 March 1, 2016
 [American Thinker] [Navigation Menu]
 HomeArchivesVideoCartoonsAboutSearchLoginRules/FAQContactDonations
 Merchandise <http://www.americanmethod.com/american-thinker/>
 Home Archives Video Cartoons About Search Login More [Down Arrow]
   * Rules/FAQ
   * Contact
   * Donations
   * Merchandise <http://www.americanmethod.com/american-thinker/>


 American Thinker Blog

 Mexican oil giant devastated by oil price decline - 3/1/16 March 1, 2016 
 The state owned oil company that provides one third of the revenue of the 
 Mexican government is in a deep crisis, owing to low oil prices, 

我想在 web 上的 *** 上显示它。

问题是当我把它放在一个段落中时,它看起来都串在一起了。

支持相反的操作 Html.fromHtml(htmlString) ,但是如何将文本转换为在 HTML 中正确显示的内容?直到我发布之前才想到它,但真的希望它看起来像这个编辑文本。

更新:

    <PRE> </PRE>  

是否有一些我想要的但现在没有发生环绕所以必须向右或向左滚动。

更新:根据下面的建议添加我现在得到句子换行,但有些行如下:

    The state owned oil company that
    provides one third of the revenue of                                      
    the
    Mexican government is in a deep crisis,
    owing to low oil prices,
    inefficiency, and corruption. The
    implications for the United States are
    important.  More
    The Calamitous Climate at
    etc etc

这是我的html:

       String htmlstuff = " \n" +
              "<html>\n" +
              "<header><title>This is title</title></header>\n" +
              "<body>\n" +


        "<pre style=\"white-space: pre-wrap;\">\n";

        htmlstuff=htmlstuff+result;
        htmlstuff=htmlstuff+
                " </pre>\n"+

              "</body>\n" +
              "</html>\n";
        wv.loadDataWithBaseURL("", htmlstuff, "text/html", "UTF-8", "");

        wv.setHorizontalScrollBarEnabled(false);

【问题讨论】:

【参考方案1】:

考虑一下Html display formatted text

你只需要把你的文字放在中间

<pre>

标记并使用 CSS

white-space: pre-wrap;

在没有像这样水平滚动的情况下显示它的属性

<pre style="white-space: pre-wrap;">
  Formated text
  Line 2      with wide spaces
  Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
</pre>

【讨论】:

我会尝试它没有正确包装。让我看看。就一秒 这是一个很大的改进,现在换行。我在上面更新了我现在看到的帖子! 我现在看不到任何更新,你能在这里解释一下你的问题吗? 我也觉得是对的。我将用我的 html 更新上面的内容 无论如何要摆脱换行符。包装后它们似乎在错误的位置...

以上是关于需要在 HTML webview 中显示文本格式的数据,如 Stack Overflow的主要内容,如果未能解决你的问题,请参考以下文章

如何获取在webview中显示的html页面的整个内容文本

在android上显示各种格式的文本

WebView 显示黑屏

APP里如何添加本地文本

突出显示文本功能,如 google play book

Android WebView 错误地处理预格式化文本中的换行符