Un target di selezione è un elemento UI su cui può spostarsi la selezione della tastiera. Gli utenti possono spostare la selezione della tastiera con il tasto Tab o i tasti direzionali (freccia):
- Tab o Maiusc+Tab: sposta lo stato attivo in avanti o indietro nell'ordine di visualizzazione unidimensionale.
- Tasti direzionali: spostano lo stato attivo in due dimensioni (Su, Giù, Sinistra e Destra).
Gli elementi interattivi della UI sono target di messa a fuoco per impostazione predefinita
Per impostazione predefinita, un componente interattivo è un target di messa a fuoco. In altre parole, un elemento dell'interfaccia utente è un target di messa a fuoco se gli utenti possono toccarlo o farci clic sopra.
Ad esempio, considera tre componenti Scheda. Se la prima e la terza scheda sono interattive (definiscono un callback onClick), ma la seconda è puramente informativa (non gestisce i clic), premendo il tasto Tab sulla prima scheda si salta la seconda e si passa direttamente alla terza.
Card(onClick = { /* First card action */ }) { Text("Card 1 (Interactive)") } Card { Text("Card 2 (Informational - not focusable)") } Card(onClick = { /* Third card action */ }) { Text("Card 3 (Interactive)") }
Puoi impostare la seconda carta come target di messa a fuoco fornendo un parametro onClick:
Card(onClick = { /* Second card action */ }) { Text("Card 2 (Now interactive and focusable)") }
Il modificatore clickable trasforma anche gli elementi dell'interfaccia utente standard o personalizzati in
destinazioni di messa a fuoco. Per maggiori dettagli, consulta la sezione Tocca e premi.
Box( modifier = Modifier .clickable { /* Handle click */ } ) { Text("Custom interactive element") }
Rendere un elemento componibile una destinazione attiva non cliccabile
Il modificatore focusable rende un elemento componibile un target di messa a fuoco senza richiedere
la semantica del clic. Gli utenti possono spostare la selezione della tastiera sul composable modificato (ad esempio, per esaminare i contenuti con gli strumenti di accessibilità o scorrere l'area visibile), ma la pressione dei tasti Invio o Spazio non attiva un'azione di clic:
Box( modifier = Modifier .focusable() ) { Text("Non-clickable focus target") }
Rendere un composable non selezionabile
In alcuni scenari, potresti voler escludere un elemento interattivo dalla navigazione da tastiera senza disattivare gli eventi di clic o del puntatore. Puoi impedire a un
componente di ricevere lo stato attivo impostando canFocus = false all'interno del
modificatore focusProperties:
var checked by remember { mutableStateOf(false) } Switch( checked = checked, onCheckedChange = { checked = it }, // Prevent component from being focused modifier = Modifier .focusProperties { canFocus = false } )
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Ordine di attraversamento del focus
- Focus nei campi di testo
- Target di messa a fuoco del gruppo
- Indicare lo stato della messa a fuoco
- Testare la navigazione con la messa a fuoco