2011-12-01 88 views
2

我構建了一個模仿TextView但通過管理多個內部StaticLayouts支持文本包裝的自定義視圖。跨越文本上的URL跨度未顯示在繪製的StaticLayout中

一切工作都很好,但我在查看一些HTML時遇到了麻煩。大部分HTML標記都通過Html.fromHtml轉換成了Spans。這包括a-link元素,當我使用調試器時,我可以看到正在成爲URLSpan對象。

  mSpannedArticleText = Html.fromHtml(mInboundArticleText); 

在上文中,mInboundArticleText是傳遞給的setText和mSpannedArticleText入字符串將被傳遞給StaticLayout跨越式對象。除了之外,StaticLayout中的所有內容都很好,我看不到URLSpans。我知道他們連接到mSpannedArticleText和我創建使用新StaticLayout:

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

我不知道什麼會導致此問題,但,看着爲TextView的源代碼後,我做不到似乎找到URLSpans的任何特殊處理,也不會在StaticLayout中看到任何異常情況。我希望有人能夠闡明我在構建Spanned文本或使用可能沒有設置的URLSpans的其他要求方面做得不正確。

+0

當調用#makeNewLayout(..)時TextView是否將所有Spannable:s都放入DynamicLayouts中? – Jens

回答

4

我想出了這個問題。 TextPaint顯然已經將默認的linkColor設置爲透明,所以我的鏈接在那裏,但只是透明的。

+0

太棒了!謝謝 – myself