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")
})
}