Cómo habilitar las interacciones del usuario

Jetpack Compose habilita la interactividad detallada en Text. La selección de texto ahora es más flexible y se puede realizar en diseños componibles. Las interacciones de los usuarios en el texto son diferentes de otros diseños componibles, ya que no puedes agregar un modificador a una parte de un elemento Text componible. En esta página, se destacan las APIs que permiten las interacciones de los usuarios.

Seleccionar texto

De forma predeterminada, no se pueden seleccionar elementos componibles, lo que significa que los usuarios no pueden seleccionar y copiar texto desde tu aplicación. Para habilitar la selección de texto, ajusta tus elementos de texto con un elemento SelectionContainer componible:

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

Un pasaje de texto breve seleccionado por el usuario

Puede que quieras inhabilitar la selección en partes específicas de un área seleccionable. Para hacerlo, debes unir la parte que no se puede seleccionar con un elemento componible 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")
        }
    }
}

Un pasaje de texto más largo. El usuario intentó seleccionar todo el fragmento, pero no se resaltaron las dos líneas porque se les aplicó DisableSelection.

Crea secciones de texto en las que se puede hacer clic con LinkAnnotation

Para escuchar los clics en Text, puedes agregar el modificador clickable. Sin embargo, es posible que desees adjuntar información adicional a una parte determinada de el valor Text, como una URL adjunta a una palabra determinada que se abrirá en una navegador. En casos como este, debes usar un LinkAnnotation, que es una anotación que representa una parte del texto en la que se puede hacer clic.

Con LinkAnnotation, puedes adjuntar una URL a una parte de un elemento Text componible. que se abre automáticamente cuando se hace clic en él, como se muestra en el siguiente fragmento:

También puedes configurar una acción personalizada en respuesta al clic de un usuario en el elemento Text componible. En el siguiente fragmento, cuando el usuario hace clic en "Jetpack Compose", se muestra un vínculo y se registran las métricas si el usuario Hace clic en el vínculo: