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. In questa pagina vengono evidenziate le API che consentono le interazioni degli utenti.

Seleziona testo

Per impostazione predefinita, i componibili 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 in un componibile 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 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 provato a selezionare l'intero passaggio, ma poiché a due righe era applicato DisableSelection, non sono state selezionate.

Crea sezioni di testo cliccabili con LinkAnnotation

Per ascoltare i clic su Text, puoi aggiungere il modificatore clickable. 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 casi come questo, devi utilizzare un LinkAnnotation, ovvero un'annotazione che rappresenta una parte di testo cliccabile.

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

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