Jetpack Compose:SpanStyle 的 TextAlign(垂直居中)

Aar*_*zzx 5 android android-jetpack-compose

Gravity.CENTER_VERTICAL使用时如何实现SpanStyle

不要使用其他容器可组合项,例如BoxRow等...

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
)
Run Code Online (Sandbox Code Playgroud)

现在:
图像

预计:
图像

z.g*_*g.y 3

将其添加到您的第二个SpanStyle

 baselineShift = BaselineShift.Superscript
Run Code Online (Sandbox Code Playgroud)

修改代码

 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
    )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述