Un bouton d'action flottant (FAB) est un bouton à forte intensité qui permet à l'utilisateur effectuer une action principale dans une application. Elle favorise une seule action ciblée qui est le chemin le plus courant qu’un utilisateur peut emprunter et qui se trouve généralement ancrée en bas à droite de l'écran.
Voici trois cas d'utilisation dans lesquels vous pouvez utiliser un bouton d'action flottant :
- Créer un élément : dans une application de prise de notes, un bouton d'action flottant peut être utilisé pour créer rapidement une note.
- Ajouter un contact : dans une application de chat, un bouton d'action flottant peut ouvrir une interface permettant à l'utilisateur d'ajouter une personne à une conversation.
- Centrer la position: dans une interface cartographique, un bouton d'action flottant peut centrer la carte sur la l'emplacement actuel de l'utilisateur.
Dans Material Design, il existe quatre types de boutons d'action flottants :
- Bouton d'action flottant: bouton d'action flottant de taille standard.
- Petit bouton d'action flottant : bouton d'action flottant plus petit.
- Grand bouton d'action flottant : bouton d'action flottant plus grand.
- Bouton d'action flottant étendu: bouton d'action flottant qui contient bien plus qu'un simple bouton .
Surface de l'API
Bien qu'il existe plusieurs composables que vous pouvez utiliser pour créer des boutons d'action flottants conformes à Material Design, leurs paramètres ne diffèrent pas beaucoup. Voici quelques-uns des paramètres clés à prendre en compte :
onClick
: fonction appelée lorsque l'utilisateur appuie sur le bouton.containerColor
: couleur du bouton.contentColor
: couleur de l'icône.
Bouton d'action flottant
Pour créer un bouton d'action flottant général, utilisez la fonction
FloatingActionButton
. L'exemple suivant illustre
l'implémentation de base d'un FAB:
@Composable fun Example(onClick: () -> Unit) { FloatingActionButton( onClick = { onClick() }, ) { Icon(Icons.Filled.Add, "Floating action button.") } }
Cette implémentation est la suivante :

Petit bouton
Pour créer un petit bouton d'action flottant, utilisez la méthode
SmallFloatingActionButton
. L'exemple suivant montre comment procéder, en ajoutant des couleurs personnalisées.
@Composable fun SmallExample(onClick: () -> Unit) { SmallFloatingActionButton( onClick = { onClick() }, containerColor = MaterialTheme.colorScheme.secondaryContainer, contentColor = MaterialTheme.colorScheme.secondary ) { Icon(Icons.Filled.Add, "Small floating action button.") } }
Cette implémentation est la suivante :

Bouton de grande taille
Pour créer un grand bouton d'action flottant, utilisez la méthode
LargeFloatingActionButton
. Ce composable n'est pas
est très différente des autres exemples, mis à part le fait qu'il
le bouton sera plus gros.
Voici une implémentation simple d'un grand bouton d'action flottant.
@Composable fun LargeExample(onClick: () -> Unit) { LargeFloatingActionButton( onClick = { onClick() }, shape = CircleShape, ) { Icon(Icons.Filled.Add, "Large floating action button") } }
Cette implémentation est la suivante :

Bouton étendu
Vous pouvez créer des boutons d'action flottants plus complexes avec le composable ExtendedFloatingActionButton
. La principale différence entre
et FloatingActionButton
correspond aux icon
et text
dédiés
paramètres. Ils vous permettent de créer un bouton avec un contenu plus complexe qui s'adapte à son contenu de manière appropriée.
L'extrait de code suivant montre comment implémenter
ExtendedFloatingActionButton
, avec des exemples de valeurs transmis pour icon
et
text
@Composable fun ExtendedExample(onClick: () -> Unit) { ExtendedFloatingActionButton( onClick = { onClick() }, icon = { Icon(Icons.Filled.Edit, "Extended floating action button.") }, text = { Text(text = "Extended FAB") }, ) }
Cette implémentation est la suivante :
