Jetpack Compose: TextAlign (по центру по вертикали) SpanStyle

Как реализовать Gravity.CENTER_VERTICAL при использовании SpanStyle?

Не используйте другие компонуемые контейнеры, такие как Box, Row и т. д.

val spanString = buildAnnotatedString {
    withStyle(
        SpanStyle(
            color = Color(0xFF333333),
            fontSize = 32.sp
        )
    ) {
        append("Jetpack")
    }
    withStyle(
        SpanStyle(
            color = Color(0xFF999999),
            fontSize = 14.sp,
            fontWeight = FontWeight.Bold
        )
    ) {
        append(" Compose")
    }
}
Text(
    modifier = Modifier.background(color = Color.White),
    text = spanString
)

Сейчас:
Jetpack Compose: TextAlign (по центру по вертикали) SpanStyle

Ожидайте:
Jetpack Compose: TextAlign (по центру по вертикали) SpanStyle

5
0
82
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добавьте это ко второму SpanStyle

 baselineShift = BaselineShift.Superscript

Модифицированный код

 val spanString = buildAnnotatedString {
        withStyle(
            SpanStyle(
                color = Color(0xFF333333),
                fontSize = 32.sp
            )
        ) {
            append("Jetpack")
        }
        withStyle(
            SpanStyle(
                baselineShift = BaselineShift.Superscript, // added line
                color = Color(0xFF999999),
                fontSize = 14.sp,
                fontWeight = FontWeight.Bold
            )
        ) {
            append(" Compose")
        }
    }
    Text(
        modifier = Modifier.background(color = Color.White),
        text = spanString,
        textAlign = TextAlign.Center
    )

Другие вопросы по теме