Attiva le interazioni degli utenti

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

Seleziona testo

Per impostazione predefinita, i composabili non sono selezionabili, il che significa che gli utenti non possono selezionare e copiare il testo dalla tua app. Per attivare la selezione del testo, racchiudi gli elementi di testo con un composable SelectionContainer:

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

Un breve passaggio di testo selezionato dall'utente.

Potresti voler disattivare la selezione in parti specifiche di un'area selezionabile. Per farlo, devi racchiudere la parte non selezionabile con un composable 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 provato a selezionare l'intero passaggio, ma poiché a due righe era stato applicato il valore DisableSelection, non sono state selezionate.

Creare sezioni di testo selezionabili con LinkAnnotation

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

Con LinkAnnotation, puoi allegare un URL a una parte di un composable Text che si apre automaticamente dopo aver fatto clic, come mostrato nel seguente snippet:

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