我構建了一個模仿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的其他要求方面做得不正確。
當調用#makeNewLayout(..)時TextView是否將所有Spannable:s都放入DynamicLayouts中? – Jens