android - 让 Jetpack Compose 中的每个单词都可以点击

标签 android kotlin android-jetpack-compose

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

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

例如我有这个字符串 -> "This is a sample text"我想点击单词 "sample"并将它作为字符串返回

最佳答案

这样做:

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

关于android - 让 Jetpack Compose 中的每个单词都可以点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71159027/

相关文章:

java - 在 Android SQLite 数据库 onCreate() 中重新抛出异常

android - 如何在 Jetpack Compose "false"或 "row"中设置 ClipsToBounds "column"

android - Jetpack Compose 中的作用域状态

android - jetpack compose 中的 onNewIntent

android - taplytics、mixpanel、optimized 或 apptimize 是如何工作的?

android - Intellij 12 maven library Android RestTemplate 麻烦处理javax/xml/parser/DocumentBuilder.class

android - 如何在 Android 中使用多个 xml "style sheets"?

android - 使用 Firebase 登录 Google 失败

android - Kotlin:如何将子数组缩减为单个数组?

android - 检测到 NFC 标签时显示 toast 消息