Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
60 of 502 menu
◀ ▶

Класс AnnotatedString

Класс AnnotatedString - это данные для текста с разной разметкой по диапазонам. Внутри лежит обычная строка и списки стилей, ссылок и аннотаций. Собрать объект удобно через AnnotatedString.Builder, а показать на экране - функцией Text.

Синтаксис

val annotated = AnnotatedString("abcde")

Пример

Давайте соберём строку с жирным фрагментом:

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.buildAnnotatedString import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.withStyle class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val annotated = buildAnnotatedString { append("abcde") addStyle( SpanStyle(fontWeight = FontWeight.Bold), start = 3, end = 5, ) } Text(text = annotated) } } }

На экране буквы "de" будут жирнее, чем начало строки "abc".

Пример

Давайте соберём ту же строку через явный builder:

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("12345") builder.addStyle( SpanStyle(fontWeight = FontWeight.Bold), start = 3, end = 5, ) val annotated = builder.toAnnotatedString() Text(text = annotated) } } }

На экране цифры "45" окажутся жирными, а "123" - обычными.

Смотрите также

  • класс AnnotatedString.Builder,
    который по шагам собирает размеченную строку
  • класс SpanStyle,
    который задаёт стиль отдельного фрагмента
  • класс LinkAnnotation,
    который описывает ссылку внутри текста
  • функция Text,
    которая рисует строку или AnnotatedString
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить