Il componente Chip
è un elemento dell'interfaccia utente compatto e interattivo. Rappresenta entità complesse come un contatto o un tag, spesso con un'icona e un'etichetta. Può essere
controllabile, ignorabile o cliccabile.
Di seguito sono riportati i quattro tipi di chip e dove puoi utilizzarli:
- Assistenza: guida l'utente durante un'attività. Spesso viene visualizzato come elemento di UI provvisorio in risposta all'input dell'utente.
- Filtro: consente agli utenti di perfezionare i contenuti da un insieme di opzioni. Possono essere selezionati o deselezionati e possono includere un'icona di spunta quando sono selezionati.
- Input: rappresenta le informazioni fornite dall'utente, ad esempio le selezioni in un menu. Possono contenere un'icona e del testo, nonché un'"X" per la rimozione.
- Suggerimento: fornisce consigli all'utente in base alla sua attività o ai suoi input recenti. In genere vengono visualizzati sotto un campo di immissione per richiedere le azioni dell'utente.
API surface
Esistono quattro composabili che corrispondono ai quattro tipi di chip. Le seguenti sezioni descrivono in dettaglio questi composabili e le relative differenze. Tuttavia, condividono i seguenti parametri:
label
: la stringa visualizzata sul chip.icon
: l'icona visualizzata all'inizio del chip. Alcuni composabili specifici hanno un parametroleadingIcon
etrailingIcon
distinto.onClick
: la funzione lambda chiamata dal chip quando l'utente lo preme.
Chip di assistenza
Il componibile AssistChip
offre un modo semplice per creare un chip di assistenza che solleciti l'utente in una determinata direzione. Una caratteristica distintiva è il parametro leadingIcon
che consente di visualizzare un'icona sul lato sinistro del chip. L'esempio seguente mostra come implementarlo:
@Composable fun AssistChipExample() { AssistChip( onClick = { Log.d("Assist chip", "hello world") }, label = { Text("Assist chip") }, leadingIcon = { Icon( Icons.Filled.Settings, contentDescription = "Localized description", Modifier.size(AssistChipDefaults.IconSize) ) } ) }
Questa implementazione è visualizzata come segue.
Icona filtro
Il componibile FilterChip
richiede di monitorare se il chip è selezionato o meno. L'esempio seguente mostra come mostrare un'icona selezionata iniziale solo quando l'utente ha selezionato il chip:
@Composable fun FilterChipExample() { var selected by remember { mutableStateOf(false) } FilterChip( onClick = { selected = !selected }, label = { Text("Filter chip") }, selected = selected, leadingIcon = if (selected) { { Icon( imageVector = Icons.Filled.Done, contentDescription = "Done icon", modifier = Modifier.size(FilterChipDefaults.IconSize) ) } } else { null }, ) }
Questa implementazione viene visualizzata come segue quando non è selezionata:
e viene visualizzato come segue quando è selezionato:
Chip di input
Puoi utilizzare il composable InputChip
per creare chip risultanti dall'interazione dell'utente. Ad esempio, in un client di posta, quando l'utente scrive un'email, un chip di input potrebbe rappresentare una persona di cui l'utente ha inserito l'indirizzo nel campo "a:".
La seguente implementazione mostra un chip di input che è già in uno stato selezionato. L'utente chiude il chip quando lo preme.
@Composable fun InputChipExample( text: String, onDismiss: () -> Unit, ) { var enabled by remember { mutableStateOf(true) } if (!enabled) return InputChip( onClick = { onDismiss() enabled = !enabled }, label = { Text(text) }, selected = enabled, avatar = { Icon( Icons.Filled.Person, contentDescription = "Localized description", Modifier.size(InputChipDefaults.AvatarSize) ) }, trailingIcon = { Icon( Icons.Default.Close, contentDescription = "Localized description", Modifier.size(InputChipDefaults.AvatarSize) ) }, ) }
Questa implementazione è visualizzata come segue.
Chip di suggerimento
Il composable SuggestionChip
è il più semplice tra quelli elencati in questa pagina, sia nella definizione dell'API sia nei casi d'uso comuni. I chip di suggerimento presentano suggerimenti generati dinamicamente. Ad esempio, in un'app di chat con IA, potresti utilizzare i chip di suggerimento per presentare possibili risposte al messaggio più recente.
Considera questa implementazione di SuggestionChip
:
@Composable fun SuggestionChipExample() { SuggestionChip( onClick = { Log.d("Suggestion chip", "hello world") }, label = { Text("Suggestion chip") } ) }
Questa implementazione è visualizzata come segue:
Chip rialzato
Tutti gli esempi in questo documento utilizzano elementi componibili di base con aspetto piatto. Se vuoi un chip con un aspetto più elevato, utilizza uno dei seguenti tre composabili: