Skip to content

Jetpack Compose : 使用 LinkAnnotation 替代 ClickableText

文本点击事件:

kotlin
ClickableText(
    text = AnnotatedString("Open Link"),
    onClick = { offset ->
        // handle click
    }
)

使用 buildAnnotatedString 实现:

kotlin
Text(buildAnnotatedString {
    append("View my ")
    withLink(LinkAnnotation.Url(url = "https://joebirch.co")) {
        append("website")
    }
})

默认情况下,可点击文本以下划线修饰。

可通过 SpanStyle 修改:

kotlin
Text(buildAnnotatedString {
    append("View my ")
    withLink(
        LinkAnnotation.Url(
            url = "https://joebirch.co",
            style = SpanStyle(color = MaterialTheme.colorScheme.primary)
        )
    ) {
        append("website")
    }
})

参考:

https://joebirch.co/android/migrating-from-the-clickabletext-composable-to-linkannotation/

亲手创建自己所需的软件,是程序员的幸运。