Метод copy
Метод copy класса
SpanStyle
возвращает новый стиль фрагмента,
сохраняя непереданные поля.
Так меняют fontSize,
fontWeight или color
без полной пересборки объекта.
Синтаксис
val accent = base.copy(color = Color.Red)
Параметры
| Параметр | Описание |
|---|---|
color |
Новый цвет фрагмента. Принимает значение класса
Color.
|
fontSize |
Новый размер шрифта в sp. |
fontWeight |
Новая толщина. Принимает значение класса
FontWeight.
|
Пример
Давайте скопируем стиль и сделаем фрагмент жирным:
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
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val base = SpanStyle(color = Color.Red)
val strong = base.copy(fontWeight = FontWeight.Bold)
val annotated = buildAnnotatedString {
withStyle(strong) {
append("abcde")
}
}
Text(text = annotated)
}
}
}
На экране вся строка "abcde"
будет красной и жирной.
Смотрите также
-
метод
copy,
который копирует TextStyle -
класс
SpanStyle,
стиль фрагмента текста -
метод
pushStyle,
который включает SpanStyle в builder -
класс
AnnotatedString,
куда попадает размеченный текст