Jetpack Compose - SelectionContainer - 如何添加缺失的功能?

dgm*_*ltn 18 android-view android-jetpack-compose

我正在尝试使用 Jetpack Compose 复制一些基于视图的选定文本行为。在这两种情况下,我都长按了 URL 的中间。

基于视图:

<TextView ... android:textIsSelectable="true" />
Run Code Online (Sandbox Code Playgroud)

基于视图的屏幕截图

撰写:

    SelectionContainer {
        Text(...)
    }

Run Code Online (Sandbox Code Playgroud)

基于撰写的屏幕截图

正如您在屏幕截图中看到的, Compose布局中缺少一些选项。有办法添加这个吗?是的,我知道我可以使用AndroidView,但是有没有更复杂的方法来做到这一点?以下是View布局中的内容,但Compose布局中缺少的内容:

  • “分享”
  • “全选”
  • 选择 URL 时“打开”
  • (基于人工智能?)自动选择 URL。点击并按住 URL 上的任意位置会自动选择 URL 部分。

编辑:我不是在要求一个自定义工具栏,我是在要求 Google 在 TextView 中提供的工具栏。

Eli*_*ber 1

虽然这仍然不受支持,但如果您使用 TextField 而不是 Text,您至少也会获得“全选”选项。

@Composable
private fun SelectableTextField() {
    TextField(
        value = "This is a selectable text",
        onValueChange = {},
        keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
        readOnly = true,
        colors = TextFieldDefaults.colors(
            focusedContainerColor = Color.Transparent,
            unfocusedContainerColor = Color.Transparent,
            focusedIndicatorColor = Color.Transparent,
            unfocusedIndicatorColor = Color.Transparent
        )
    )
}
Run Code Online (Sandbox Code Playgroud)