Класс SpanStyle
Класс SpanStyle описывает
оформление фрагмента: fontSize,
fontWeight, color
и другие поля начертания.
Его передают в
pushStyle
или в withStyle при сборке
AnnotatedString.
Выравнивание абзаца задают через
TextStyle
или TextAlign
у функции Text.
Синтаксис
SpanStyle(
fontSize = 18.sp,
fontWeight = FontWeight.Bold,
color = Color.Red,
)
Методы
| Метод | Описание |
|---|---|
copy |
Создаёт копию стиля фрагмента с новыми полями. |
Пример
Давайте выделим хвост строки красным и жирным:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text
import androidx.compose.ui.graphics.Color
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
import androidx.compose.ui.unit.sp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val annotated = buildAnnotatedString {
append("abcde")
addStyle(
SpanStyle(
fontSize = 20.sp,
fontWeight = FontWeight.Bold,
color = Color.Red,
),
start = 3,
end = 5,
)
}
Text(text = annotated)
}
}
}
На экране "de" будет крупнее, жирнее
и краснее, чем "abc".
Смотрите также
-
класс
TextStyle,
который задаёт общий стиль абзаца -
класс
ParagraphStyle,
который описывает абзац в размеченном тексте -
метод
pushStyle,
который включает SpanStyle в builder -
класс
FontWeight,
который задаёт толщину шрифта