Класс Builder
Класс AnnotatedString.Builder
накапливает символы и вешает на диапазоны
стили и ссылки.
Текст дописывают методом
append,
стиль включают и снимают
pushStyle
и pop,
ссылку ставят методом
addLink.
Готовый объект получают вызовом
toAnnotatedString.
Синтаксис
val builder = AnnotatedString.Builder()
builder.append("abcde")
val annotated = builder.toAnnotatedString()
Методы
| Метод | Описание |
|---|---|
append |
Дописывает символы в конец строки. |
pushStyle |
Включает стиль для следующих символов. |
pop |
Снимает последний включённый стиль. |
addLink |
Помечает диапазон ссылкой. |
Пример
Давайте соберём строку с двумя стилями:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.font.FontWeight
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val builder = AnnotatedString.Builder()
builder.append("abcde")
builder.addStyle(
SpanStyle(fontWeight = FontWeight.Bold),
start = 3,
end = 5,
)
Text(text = builder.toAnnotatedString())
}
}
}
На экране хвост строки "de"
в "abcde" будет жирным.
Смотрите также
-
класс
AnnotatedString,
готовый результат сборки builder -
класс
SpanStyle,
который задаёт стиль фрагмента для pushStyle -
класс
LinkAnnotation,
который описывает ссылку для addLink -
функция
Text,
которая показывает собранный текст