Indicare lo stato attivo

Lo stato attivo fornisce un chiaro segnale visivo per aiutare gli utenti a capire quale elemento dell'interfaccia utente ha attualmente lo stato attivo. Tutti i componenti interattivi di Material 3 forniscono indicazioni di messa a fuoco integrate per impostazione predefinita.

Indicazione di focus del tema Material

I componenti Material utilizzano la funzione ripple e LocalIndication per disegnare le modifiche dello stato visivo. Per allegare un feedback standard di Material Focus a un componente personalizzato:

  1. Crea un MutableInteractionSource utilizzando remember { MutableInteractionSource() }.
  2. Passa l'origine dell'interazione al modificatore indication, insieme a ripple().

val interactionSource = remember { MutableInteractionSource() }

Box(
    modifier = Modifier
        .clickable(
            interactionSource = interactionSource,
            indication = null
        ) { /* onClick */ }
        .indication(
            interactionSource = interactionSource,
            indication = ripple()
        )
) {
    Text("Custom component with Material ripple")
}

Implementare indicazioni di messa a fuoco personalizzate

Per segnali visivi personalizzati (come ridimensionamento, bordi o effetti luminosi):

  1. Crea un IndicationNodeFactory.
  2. Osserva le interazioni di messa a fuoco emesse da InteractionSource dell'elemento.
  3. Applica l'indicazione personalizzata utilizzando il modificatore indication.

var interactionSource = remember { MutableInteractionSource() }

Card(
    modifier = Modifier
        .clickable(
            interactionSource = interactionSource,
            indication = MyHighlightIndication,
            enabled = true,
            onClick = { }
        )
) {
    Text("hello")
}