[ Compose ] Using Rich Text Style in Compose

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")
    })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值