Html.fromHtml 中的换行符被忽略

Linebreaks are ignored in Html.fromHtml

我从 API 收到带有换行符的文本,但我无法使用换行符。

这是我要显示的部分文字。 http://pastebin.com/CLnq16mP(粘贴到那里是因为 Whosebug 上的格式不正确。)

我试过这个:

termsAndConditionsTextView.setText(Html.fromHtml("<html><body>" + textResponse.getText() + "</body></html>"));

还有这个:

termsAndConditionsTextView.setText(Html.fromHtml(textResponse.getText()));

但换行符 (\r\n) 和空格总是被忽略。

我该如何解决这个问题?

因为 html 尝试使用

</br>

您可以通过执行以下操作来替换文本中的所有 \r\n 和空格:

    //message is your string.

    message = message.replace("\r\n","<br />");
    message = message.replace(" ","&nbsp;");
    termsAndConditionsTextView.setText(Html.fromHtml(message));

祝你好运!

由于文本已预先格式化,即使有缩进,您也可以使用 <pre> 标签。

<pre>
   your text.
</pre>

但是换行符显然是在哪里转义的:\r\n 所以你仍然需要转换:

message = message.replace("\r\n", "\r\n");

\/也是如此。

如果你想引入粗体、超链接等,那么 <pre> 标签会失败,因为它只能包含预格式化的原样文本,