Spannable风格并不适用

时间:2015-08-26 06:34:25

标签: android spannable

所以,我有一条包含文字和SpannableStringBuilder的邮件,其初始化如下:

final SpannableStringBuilder builder = new SpannableStringBuilder(message.getMessage());

默认情况下,我将字体设置为BOLD

builder.setSpan(new StyleSpan(Typeface.BOLD), 0, messageText.length(), 0);

但我的消息文本将被更改,例如:

你的问题:{问题} 你的回答:{answer}

{question}和{answer}是将被文本替换的对象,替换发生方式如下:

final  TextObject question = objects.getQuestion();
spannable = new SpannableString(question.getText());
spannable.setSpan(new StyleSpan(Typeface.NORMAL), 0, spannable.length(), 0);
builder.replace(start, end, spannable);

文字正在替换正常,但是NORMAL字体类型不适用于它,所以我有所有文字BOLD,但我需要这部分是正常的

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

您必须将Spanned.SPAN_INCLUSIVE_INCLUSIVE添加为最后一个参数

spannable.setSpan(new StyleSpan(Typeface.NORMAL), 0, spannable.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);

如果你想要一些粗体的部分而不是你需要具体哪个部分。 setSpan方法的第二个和第三个参数负责