Um botão de ação flutuante (FAB) é um botão de alta ênfase que permite ao usuário realizar uma ação principal em um aplicativo. Ele promove uma ação única e focada, que é o caminho mais comum que um usuário pode seguir, e geralmente é encontrado ancorado no canto inferior direito da tela.
Considere estes três casos de uso em que é possível usar um FAB:
- Criar novo item: em um app de anotações, um FAB pode ser usado para criar rapidamente uma nova nota.
- Adicionar novo contato: em um app de chat, um FAB pode abrir uma interface que permite que o usuário adicione alguém a uma conversa.
- Localização central: em uma interface de mapa, um FAB pode centralizar o mapa no local atual do usuário.
No Material Design, há quatro tipos de FAB:
- Botão de ação flutuante: um botão de ação flutuante de tamanho comum.
- FAB pequeno: um botão de ação flutuante menor.
- Botão de ação flutuante grande: um botão de ação flutuante maior.
- FAB estendido: um botão de ação flutuante que contém mais do que apenas um ícone.
Plataforma da API
Embora existam vários elementos combináveis que podem ser usados para criar botões de ação flutuantes consistentes com o Material Design, os parâmetros deles não são muito diferentes. Estes são os principais parâmetros que você precisa considerar:
onClick
: a função chamada quando o usuário pressiona o botão.containerColor
: a cor do botão.contentColor
: a cor do ícone.
Botão de ação flutuante
Para criar um botão de ação flutuante geral, use o elemento básico
FloatingActionButton
combinável. O exemplo a seguir demonstra uma
implementação básica de um FAB:
@Composable fun Example(onClick: () -> Unit) { FloatingActionButton( onClick = { onClick() }, ) { Icon(Icons.Filled.Add, "Floating action button.") } }
Essa implementação aparece da seguinte maneira:
Botão pequeno
Para criar um botão de ação flutuante pequeno, use o elemento combinável
SmallFloatingActionButton
. O exemplo a seguir demonstra
como fazer isso, com a adição de cores personalizadas.
@Composable fun SmallExample(onClick: () -> Unit) { SmallFloatingActionButton( onClick = { onClick() }, containerColor = MaterialTheme.colorScheme.secondaryContainer, contentColor = MaterialTheme.colorScheme.secondary ) { Icon(Icons.Filled.Add, "Small floating action button.") } }
Essa implementação aparece da seguinte maneira:
Botão grande
Para criar um botão de ação flutuante grande, use o
elemento combinável LargeFloatingActionButton
. Esse elemento combinável não é
significativamente diferente dos outros exemplos, exceto pelo fato de resultar
em um botão maior.
Confira a seguir uma implementação simples de um grande botão de ação flutuante.
@Composable fun LargeExample(onClick: () -> Unit) { LargeFloatingActionButton( onClick = { onClick() }, shape = CircleShape, ) { Icon(Icons.Filled.Add, "Large floating action button") } }
Essa implementação aparece da seguinte maneira:
Botão estendido
É possível criar botões de ação flutuantes mais complexos com o elemento combinável
ExtendedFloatingActionButton
. A principal diferença entre ele
e FloatingActionButton
é que ele tem parâmetros dedicados icon
e
text
. Eles permitem criar um botão com conteúdo mais complexo, que é dimensionado
para se ajustar ao conteúdo de forma adequada.
O snippet abaixo demonstra como implementar
ExtendedFloatingActionButton
, com valores de exemplo transmitidos para 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") }, ) }
Essa implementação aparece da seguinte maneira: