使 jetpack compose 中的每个单词都可点击

Ali*_*eza 5 android kotlin android-jetpack-compose

ClickableText 将返回单击字符的位置,但是是否可以使每个单词可单击并返回它?

@Composable
fun SimpleClickableText() {
    ClickableText(
        text = AnnotatedString("Click Me"),
        onClick = { offset ->
            Log.d("ClickableText", "$offset -th character is clicked.")
        }
    )
}
Run Code Online (Sandbox Code Playgroud)

例如我有这个字符串 - >“这是一个示例文本”,我想单击单词“sample”并将其作为字符串返回

Mob*_*dim 1

像这样做:

val text = AnnotatedString("Click Me")
ClickableText(
                text = text,
                onClick = { offset ->
                    val words = text.split(" ")
                    var cursor = 0
                    for (word in words) {
                        cursor += word.length
                        if(offset <= cursor) {
                            Log.d("ClickableText", "$word -th character is clicked.")
                            break
                        }
                        cursor++
                    }
                }
              )
Run Code Online (Sandbox Code Playgroud)