【问题标题】:SpannableStringBuilder does not keep the style set in the textSpannableStringBuilder 不保留文本中设置的样式
【发布时间】:2017-06-09 19:17:06
【问题描述】:

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

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,但它似乎不起作用。

【问题讨论】:

    标签: android textview spannablestring spannable spannablestringbuilder


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-24
      • 2014-03-05
      • 2019-11-28
      • 1970-01-01
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多