首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpannableStringBuilder不保留文本中设置的样式

SpannableStringBuilder不保留文本中设置的样式
EN

Stack Overflow用户
提问于 2017-01-25 03:38:42
回答 1查看 866关注 0票数 2

我正在尝试使用SpannableStringBuilder来构建一个包含不同样式的文本。但是在追加更多的字符串后,样式就会丢失。

代码语言:javascript
复制
public SpannableStringBuilder buildMixStyleText() {
    SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();

    TextAppearanceSpan styleRed = new TextAppearanceSpan(getBaseContext(), R.style.Red);
    TextAppearanceSpan styleGreen = new TextAppearanceSpan(getBaseContext(), R.style.Green);

    for (int i = 0; i < 10; i++) {
        SpannableString red = new SpannableString("red");
        red.setSpan(styleRed, 0, red.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableStringBuilder.append(red);
        spannableStringBuilder.append("\n");

        SpannableString green = new SpannableString("green");
        green.setSpan(styleGreen, 0, green.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableStringBuilder.append(green);
        spannableStringBuilder.append("\n");

    }
    return spannableStringBuilder;
}

Textview在前两次以红色显示“红色”,在下一次样式丢失时以绿色显示“绿色”,它们都是灰色的默认颜色。

我尝试过跨界面的不同选项,比如SPAN_INCLUSIVE_EXCLUSIVE,但它似乎不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-25 11:11:33

请尝试将% green.setSpan(styleGreen, 0, green.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);中的styleGreen替换为new TextAppearanceSpan(getBaseContext(), R.style.Green)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41837533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档