跨越文本的URLSpan未显示在绘制的StaticLayout中

时间:2011-12-01 07:17:45

标签: android

我正在构建一个模仿TextView但通过管理多个内部StaticLayouts支持文本换行的自定义视图。

一切都很顺利,但我在浏览一些HTML时遇到了麻烦。大多数HTML标记都通过Html.fromHtml转换为Spans。这包括a-link元素,当我逐步调试调试器时,我看到它们正在成为URLSpan对象。

            mSpannedArticleText = Html.fromHtml(mInboundArticleText);

在上面,mInboundArticleText是传递给setText的入站字符串,mSpannedArticleText是将传递给StaticLayout的Spanned对象。 StaticLayout中的所有内容都呈现出很好的效果,除了我看不到URLSpans。我知道它们附加到mSpannedArticleText并且使用以下命令创建一个新的StaticLayout:

updatedLeftColumnLayout = new StaticLayout(mSpannedArticleText, mBodyTextPaint, leftColumnWidth, Layout.Alignment.ALIGN_NORMAL, (float) 1.0, (float) 0.0, true);

我不确定会导致这个问题的原因,但是在查看TextView的源代码之后,我似乎无法找到任何特殊的URLSpans处理,也没有在StaticLayout中看到任何异常情况。我希望有人能够详细说明我在构建跨文本时可能做错了什么或者使用我可能没有设置的URLSpans的其他要求。

1 个答案:

答案 0 :(得分:6)

我想出了这个问题。 TextPaint显然将默认的linkColor设置为透明,所以我的链接就在那里,但只是透明的。