Functional Style
@Preview
@Composable
fun AnnotatedTextView() {
    val styleRanges = mutableListOf<Range<SpanStyle>>()
    val style1 = SpanStyle(color = Color.Red)
    val range1 = Range(style1, 0, 9)
    val style2 = SpanStyle(color = Color.Green)
    val range2 = Range(style2, 9, 18)
    styleRanges.add(range1)
    styleRanges.add(range2)
    val paragraphRanges = mutableListOf<Range<ParagraphStyle>>()
    val paragraphStyle1 = ParagraphStyle(lineHeight = TextUnit(2.0f, TextUnitType.Em))
    val paragraphRange1 = Range(paragraphStyle1, 0, 18)
    paragraphRanges.add(paragraphRange1)
    val annotatedString = AnnotatedString(text = "123456789123456789123456789", spanStyles = styleRanges, paragraphStyles = paragraphRanges)
    Text(text = annotatedString)
}
DSL Style
@Preview
@Composable
fun AnnotatedTextView() {
    Text(text = buildAnnotatedString {
        pushStyle(ParagraphStyle(lineHeight = TextUnit(2.0f, TextUnitType.Em)))
        pushStyle(SpanStyle(color = Color.Red))
        append("123456789")
        pop()
        pushStyle(SpanStyle(color = Color.Green))
        append("123456789")
        pop()
        pop()
        append("123456789")
    })
}
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐