Создание нескольких частей SpannableStringBuilder Bold - PullRequest
2 голосов
/ 05 января 2020

Я пытаюсь получить строку в TextView, которая должна выглядеть следующим образом:

BOLD не жирный BOLD не жирный

Я пробовал этот код:

val builder = SpannableStringBuilder()
val boldSpan = StyleSpan(Typeface.BOLD)
val spanFlag = Spannable.SPAN_EXCLUSIVE_EXCLUSIVE

builder.append("BOLD ", boldSpan, spanFlag)
builder.append("not bold ")
builder.append("BOLD ", boldSpan, spanFlag)
builder.append("not bold ")

return builder

Проблема в том, что он только выделяет последнюю часть. Результат выглядит следующим образом:

BOLD не выделен жирным шрифтом BOLD не выделен жирным шрифтом

Есть ли способ выделить несколько частей с помощью SpannableStringBuilder?

1 Ответ

2 голосов
/ 05 января 2020

Используйте два разных диапазона:

val builder = SpannableStringBuilder()
val spanFlag = Spannable.SPAN_EXCLUSIVE_EXCLUSIVE

builder.append("BOLD ", StyleSpan(Typeface.BOLD), spanFlag)
builder.append("not bold ")
builder.append("BOLD ", StyleSpan(Typeface.BOLD), spanFlag)
builder.append("not bold ")

return builder
...