让 Jetpack Compose 中的每个单词都可以点击
make each word clickable in jetpack compose
ClickableText 将 return 被点击字符的位置,但是否可以使每个单词都可点击并 return 呢?
@Composable
fun SimpleClickableText() {
ClickableText(
text = AnnotatedString("Click Me"),
onClick = { offset ->
Log.d("ClickableText", "$offset -th character is clicked.")
}
)
}
例如我有这个字符串 -> “这是一个示例文本”,我想点击单词“sample”然后 return 它作为字符串
这样做:
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++
}
}
)
ClickableText 将 return 被点击字符的位置,但是否可以使每个单词都可点击并 return 呢?
@Composable
fun SimpleClickableText() {
ClickableText(
text = AnnotatedString("Click Me"),
onClick = { offset ->
Log.d("ClickableText", "$offset -th character is clicked.")
}
)
}
例如我有这个字符串 -> “这是一个示例文本”,我想点击单词“sample”然后 return 它作为字符串
这样做:
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++
}
}
)