1. 程式人生 > >SpannableStringBuilder 同時設定setclickspan 和 ForegroundColorSpan出現問題

SpannableStringBuilder 同時設定setclickspan 和 ForegroundColorSpan出現問題

借鑑:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0305/2535.html這篇文章

專案最初使用的是SpannableString 進行富文字顯示,由於需求新增,需要用SpannableStringBuilder來改變顯示的字串。

這時候用setclickspan 和 ForegroundColorSpan會出現字型顏色不是自己設定的情況。

這種情況應該是:setclickspan會有一個連結顏色將ForegroundColorSpan設定的顏色覆蓋了(雖然我先設定的setclickspan)所以換成了TextAppearanceSpan,這個span方法可以設定字型的各種顏色

//設定前景色span
spannableString.setSpan(new TextAppearanceSpan(mEditText.getContext(),R.style.SpecialTextAppearance), matcher.start(), end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

<style name="SpecialTextAppearance" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/comment_matcher</item>
<item name="android:textColorHighlight">@color/comment_matcher</item> <item name="android:textColorHint">@color/comment_matcher</item> <item name="android:textColorLink">@color/comment_matcher</item><!--連結顏色!!--> </style>