实现用户互动

Jetpack Compose 支持 Text 中的精细互动。文字选择现在更加灵活,并且可以跨各种可组合项布局进行选择。文字中的用户互动与其他可组合项布局不同,因为您无法为 Text 可组合项的某一部分添加修饰符。本页重点介绍了 实现用户互动的功能

选择文本

默认情况下,可组合项不可选择,这意味着用户无法 从您的应用中选择和复制文本。如需启用文本选择功能,请换行 使用 SelectionContainer 可组合项构建文本元素:

@Composable
fun SelectableText() {
    SelectionContainer {
        Text("This text is selectable")
    }
}

用户选定了一个简短的文字段落。

您可能想为可选择区域的特定部分停用选择功能。如果要执行此操作,您需要使用 DisableSelection 可组合项来封装不可选择的部分:

@Composable
fun PartiallySelectableText() {
    SelectionContainer {
        Column {
            Text("This text is selectable")
            Text("This one too")
            Text("This one as well")
            DisableSelection {
                Text("But not this one")
                Text("Neither this one")
            }
            Text("But again, you can select this one")
            Text("And this one too")
        }
    }
}

一个较长的文字段落。用户尝试选中整个段落,但由于有两行内容应用了 DisableSelection,所以这两行无法选中。

使用 LinkAnnotation 创建可点击的文本部分

如需监听 Text 的点击次数,您可以添加 clickable 修饰符。不过,您可能想要在 Text 值,例如附加到特定字词的网址,以便在 。在这种情况下,您需要使用 LinkAnnotation, 表示文本中可点击部分的注释。

借助 LinkAnnotation,您可以将网址附加到 Text 可组合项的一部分 点击后会自动打开,如以下代码段所示:

您还可以配置自定义操作,以响应用户点击 Text 可组合项。在以下代码段中,当用户点击 如果用户点击“Jetpack Compose”,系统会显示一个链接 点击链接: