Un pulsante di azione sovrapposto (FAB) è un pulsante con enfasi elevata che consente all'utente di eseguire un'azione principale in un'applicazione. Promuove un'unica azione mirata che rappresenta il percorso più comune che un utente potrebbe intraprendere e che in genere si trova ancorata in basso a destra dello schermo.
Prendi in considerazione questi tre casi d'uso in cui potresti utilizzare un FAB:
- Crea nuovo elemento: in un'app per prendere appunti, un FAB può essere utilizzato per creare rapidamente una nuova nota.
- Aggiungi nuovo contatto: in un'app di chat, un FAB potrebbe aprire un'interfaccia che consente all'utente di aggiungere qualcuno a una conversazione.
- Centra posizione: in un'interfaccia della mappa, un FAB potrebbe centrare la mappa sulla posizione attuale dell'utente.
In Material Design, esistono quattro tipi di FAB:
- FAB: un pulsante di azione mobile di dimensioni normali.
- FAB piccolo: un pulsante di azione mobile più piccolo.
- FAB grande: un pulsante di azione mobile più grande.
- FAB esteso: un pulsante di azione sovrapposto che contiene più di una semplice icona.
Superficie API
Sebbene esistano diversi composable che puoi utilizzare per creare pulsanti di azione fluttuanti coerenti con Material Design, i loro parametri non differiscono molto. Tra i parametri chiave da tenere a mente ci sono:
onClick
: la funzione chiamata quando l'utente preme il pulsante.containerColor
: il colore del pulsante.contentColor
: il colore dell'icona.
Pulsante di azione mobile
Per creare un pulsante di azione mobile generale, utilizza il composable
FloatingActionButton
di base. Il seguente esempio mostra un'implementazione
di base di un FAB:
@Composable fun Example(onClick: () -> Unit) { FloatingActionButton( onClick = { onClick() }, ) { Icon(Icons.Filled.Add, "Floating action button.") } }
Questa implementazione viene visualizzata nel seguente modo:

Pulsante piccolo
Per creare un piccolo pulsante di azione fluttuante, utilizza il
componente componibile SmallFloatingActionButton
. L'esempio seguente mostra
come farlo, con l'aggiunta di colori personalizzati.
@Composable fun SmallExample(onClick: () -> Unit) { SmallFloatingActionButton( onClick = { onClick() }, containerColor = MaterialTheme.colorScheme.secondaryContainer, contentColor = MaterialTheme.colorScheme.secondary ) { Icon(Icons.Filled.Add, "Small floating action button.") } }
Questa implementazione viene visualizzata nel seguente modo:

Pulsante grande
Per creare un FAB di grandi dimensioni, utilizza il
composable LargeFloatingActionButton
. Questo elemento componibile non
è molto diverso dagli altri esempi, a parte il fatto che
genera un pulsante più grande.
Di seguito è riportata un'implementazione semplice di un FAB grande.
@Composable fun LargeExample(onClick: () -> Unit) { LargeFloatingActionButton( onClick = { onClick() }, shape = CircleShape, ) { Icon(Icons.Filled.Add, "Large floating action button") } }
Questa implementazione viene visualizzata nel seguente modo:

Pulsante esteso
Puoi creare pulsanti di azione rapida più complessi con il
composabile ExtendedFloatingActionButton
. La differenza principale tra questo
e FloatingActionButton
è che ha parametri icon
e text
dedicati. Consentono di creare un pulsante con contenuti più complessi che si adattano
in modo appropriato ai contenuti.
Il seguente snippet mostra come implementare
ExtendedFloatingActionButton
, con valori di esempio passati per icon
e
text
.
@Composable fun ExtendedExample(onClick: () -> Unit) { ExtendedFloatingActionButton( onClick = { onClick() }, icon = { Icon(Icons.Filled.Edit, "Extended floating action button.") }, text = { Text(text = "Extended FAB") }, ) }
Questa implementazione viene visualizzata nel seguente modo:
