Attiva le interazioni degli utenti

Jetpack Compose consente un'interattività granulare in Text. La selezione del testo è ora più flessibile e può essere eseguita su layout componibili. Le interazioni degli utenti nel testo sono diverse da quelle di altri layout componibili, in quanto non puoi aggiungere un modificatore a una parte di un elemento componibile Text. Questa pagina mette in evidenza le API che consentono le interazioni degli utenti.

Seleziona testo

Per impostazione predefinita, gli elementi componibili non sono selezionabili, il che significa che gli utenti non possono selezionare e copiare il testo dalla tua app. Per abilitare la selezione del testo, racchiudi gli elementi di testo con un elemento componibile SelectionContainer:

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

Un breve passaggio di testo selezionato dall'utente.

Potresti voler disattivare la selezione su parti specifiche di un'area selezionabile. Per farlo, devi racchiudere la parte non selezionabile con un elemento componibile: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 passaggio di testo più lungo. L'utente ha tentato di selezionare l'intero passaggio, ma poiché a due righe era stata applicata l'opzione Disabilita selezione, non sono state selezionate.

Creare sezioni di testo su cui è possibile fare clic con LinkAnnotation

Per rilevare i clic su Text, puoi aggiungere il clickable modificatore. Tuttavia, potresti voler allegare informazioni aggiuntive a una determinata parte del valore Text, ad esempio un URL allegato a una determinata parola da aprire in un browser. In questi casi, devi utilizzare un LinkAnnotation, ovvero un'annotazione che rappresenta una parte di testo su cui è possibile fare clic.

Con LinkAnnotation, puoi allegare un URL a una parte di un elemento componibile Text che si apre automaticamente quando viene fatto clic, come mostrato nel seguente snippet:

Puoi anche configurare un'azione personalizzata in risposta a un clic dell'utente su una parte dell'elemento componibile Text. Nello snippet seguente, quando l'utente fa clic su "Jetpack Compose", viene visualizzato un link e le metriche vengono registrate se l'utente fa clic sul link: