【问题标题】:HTML with sub and sub-sub bullets not showing properly带有子和子子项目符号的 HTML 未正确显示
【发布时间】:2018-04-19 17:07:11
【问题描述】:

考虑一下这个 HTML:

<ul>
    <li>Some bullet point text.</li>
    <li>Another bullet point:</li>
        <ul>
            <li>A Sub Bullet point of the above.</li>
                  <ul>
                       <li>A Sub sub bullet point.</li>
                 </ul>
            <li>The second sub bullet point.</li>
        </ul>
</ul>

我正在将它加载到 MainActivity 的 TextView 中:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val someText = findViewById<TextView>(R.id.someTextView)
    val url = "<ul>\n" +
            "    <li>Some bullet point text.</li>\n" +
            "    <li>Another bullet point:</li>\n" +
            "        <ul>\n" +
            "            <li>A Sub Bullet point of the above.</li>\n" +
            "                  <ul>\n" +
            "                       <li>A Sub sub bullet point.</li>\n" +
            "                 </ul>\n" +
            "            <li>The second sub bullet point.</li>\n" +
            "        </ul>\n" +
            "</ul>\n"
    someText.text = Html.fromHtml(url, Html.TO_HTML_PARAGRAPH_LINES_CONSECUTIVE)
}

activity_main.xml 没什么特别的:

<TextView
    android:id="@+id/someTextView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

预期(子、子子项目符号点):

实际(没有子和子子项目符号和缩进是错误的):

  1. 我有tried this library,但也有同样的问题。
  2. 另一种解决方案是将标签转换为“\u25CF”,将子项目符号转换为“\u25CB”(或 BulletSpan),并使用 JSoup 进行排序。但这感觉对于标准 HTML 文本来说需要做很多工作。
  3. 我试过MyTagHandler,但同样的问题。

有什么想法吗?

感谢大家的帮助!

【问题讨论】:

  • 考虑使用 WebView 来显示 HTML 内容。 Html.fromHtml() 不仅非常有限,而且已弃用
  • 然后我的标记不见了,所以没有。并且不推荐使用 textView.text = Html.fromHtml(text, Html.TO_HTML_PARAGRAPH_LINES_CONSECUTIVE)。
  • Html.fromHtml() 在 Nougat+ 中已被弃用。为什么你说你的标记不见了? WebView 非常适合!
  • 我要试试这个解决方案hidroh.com/2016/02/27/richtext-textview-versus-webview,因为 fromHtml() 不支持
      。但这是更多的代码:CSS 样式表等。
  • 你根本不需要 CSS。基本 HTML 样式与您用于 TextView 的样式相同。但它是完全处理而不是部分。实际上,我不明白你为什么不能使用现有的 HTML(在从所有无用的\n 中清除它之后)。

标签: android html textview


【解决方案1】:
Html.fromHtml() 不支持

ulli 标签

方法。 Google 问题跟踪器中有一个关于 these missing tag supports 和关于 Html.fromHtml() 方法文档中的 supported tags not listen 的未解决问题。

但是,我认为BulletSpan 可能会有所帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
  • 2018-05-18
相关资源
最近更新 更多