Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Un botón de acción flotante (BAF) es un botón de gran énfasis que permite al usuario realizar una acción principal en una aplicación. Promueve una sola acción enfocada que es la ruta más común que puede tomar un usuario y que, por lo general, se encuentra anclada en la parte inferior derecha de la pantalla.
Considera estos tres casos de uso en los que podrías usar un FAB:
Crear elemento nuevo: En una app para tomar notas, se puede usar un FAB para crear rápidamente una nota nueva.
Agregar contacto nuevo: En una app de chat, un FAB podría abrir una interfaz que le permita al usuario agregar a alguien a una conversación.
Centrar la ubicación: En una interfaz de mapa, un FAB podría centrar el mapa en la ubicación actual del usuario.
En Material Design, hay cuatro tipos de BAF:
BAF: Es un botón de acción flotante de tamaño normal.
BAF pequeño: Es un botón de acción flotante más pequeño.
BAF grande: Es un botón de acción flotante más grande.
BAF extendido: Es un botón de acción flotante que contiene más que un ícono.
Compatibilidad de versiones
Esta implementación requiere que el valor de minSDK de tu proyecto se establezca en el nivel de API 21 o superior.
Para crear un botón de acción flotante pequeño, usa el elemento SmallFloatingActionButton componible. En el siguiente ejemplo, se muestra cómo hacerlo, con la adición de colores personalizados.
Para crear un botón de acción flotante grande, usa el elemento LargeFloatingActionButton componible. Este elemento componible no es significativamente diferente de los otros ejemplos, excepto por el hecho de que genera un botón más grande.
A continuación, se muestra una implementación sencilla de un BAF grande.
Puedes crear botones de acción flotante más complejos con el elemento ExtendedFloatingActionButton componible. La diferencia clave entre esta y FloatingActionButton es que tiene parámetros icon y text dedicados. Te permiten crear un botón con contenido más complejo que se adapta a su contenido de forma adecuada.
En el siguiente fragmento, se muestra cómo implementar ExtendedFloatingActionButton, con valores de ejemplo pasados para icon y text.
Figura 4: Un botón de acción flotante con texto y un ícono.
Puntos clave
Si bien hay varios elementos componibles que puedes usar para crear botones de acción flotante coherentes con Material Design, sus parámetros no difieren demasiado.
Entre los parámetros clave que debes tener en cuenta, se incluyen los siguientes:
onClick: Es la función que se llama cuando el usuario presiona el botón.
containerColor: Color del botón.
contentColor: Color del ícono.
z## Colecciones que contienen esta guía
Esta guía forma parte de las colecciones seleccionadas de Guías rápidas que abarcan objetivos más amplios de desarrollo para Android:
Mostrar componentes interactivos
Aprende cómo las funciones de componibilidad te permiten crear fácilmente componentes de IU atractivos basados en el sistema de diseño de Material Design.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-24 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-24 (UTC)"],[],[],null,["# Create a floating action button (FAB)\n\n\u003cbr /\u003e\n\nA floating action button (FAB) is a high-emphasis button that lets the user\nperform a primary action in an application. It promotes a single, focused action\nthat is the most common pathway a user might take and is typically found\nanchored to the bottom right of the screen.\n\nConsider these three use cases where you might use a FAB:\n\n- **Create new item**: In a note-taking app, a FAB might be used to quickly create a new note.\n- **Add new contact**: In a chat app, a FAB could open an interface that lets the user add someone to a conversation.\n- **Center location**: In a map interface, a FAB could center the map on the user's current location.\n\nIn Material Design, there are four types of FAB:\n\n- [FAB](#basic): A floating action button of ordinary size.\n- [Small FAB](#small): A smaller floating action button.\n- [Large FAB](#large): A larger floating action button.\n- [Extended FAB](#extended): A floating action button that contains more than just an icon.\n\nVersion compatibility\n---------------------\n\nThis implementation requires that your project minSDK be set to API level 21 or\nhigher.\n\n### Dependencies\n\n### Kotlin\n\n\n```kotlin\n implementation(platform(\"androidx.compose:compose-bom:2025.08.00\"))\n```\n\n\u003cbr /\u003e\n\n### Groovy\n\n\n```groovy\n implementation platform('androidx.compose:compose-bom:2025.08.00')\n```\n\n\u003cbr /\u003e\n\nCreate a basic floating action button\n-------------------------------------\n\nTo create a general floating action button, use the basic\n[`FloatingActionButton`](/reference/kotlin/androidx/compose/material3/package-summary#FloatingActionButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.material3.FloatingActionButtonElevation,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function0)) composable:\n\n\n```kotlin\n@Composable\nfun Example(onClick: () -\u003e Unit) {\n FloatingActionButton(\n onClick = { onClick() },\n ) {\n Icon(Icons.Filled.Add, \"Floating action button.\")\n }\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/compose/snippets/src/main/java/com/example/compose/snippets/components/FloatingActionButton.kt#L61-L68\n```\n\n\u003cbr /\u003e\n\n### Result\n\n**Figure 1.** A floating action button.\n\nCreate a small floating action button\n-------------------------------------\n\nTo create a small floating action button, use the\n[`SmallFloatingActionButton`](/reference/kotlin/androidx/compose/material3/package-summary#SmallFloatingActionButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.material3.FloatingActionButtonElevation,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function0)) composable. The following example demonstrates\nhow to do so, with the addition of custom colors.\n\n\n```kotlin\n@Composable\nfun SmallExample(onClick: () -\u003e Unit) {\n SmallFloatingActionButton(\n onClick = { onClick() },\n containerColor = MaterialTheme.colorScheme.secondaryContainer,\n contentColor = MaterialTheme.colorScheme.secondary\n ) {\n Icon(Icons.Filled.Add, \"Small floating action button.\")\n }\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/compose/snippets/src/main/java/com/example/compose/snippets/components/FloatingActionButton.kt#L83-L92\n```\n\n\u003cbr /\u003e\n\n| **Note:** Because the various FAB composables share many parameters, you can use the approach in this example to customize colors with other composables.\n\n### Result\n\n**Figure 2.** A small floating action button.\n\nCreate a large floating action button\n-------------------------------------\n\nTo create a large floating action button, use the\n[`LargeFloatingActionButton`](/reference/kotlin/androidx/compose/material3/package-summary#LargeFloatingActionButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.material3.FloatingActionButtonElevation,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function0)) composable. This composable is not\nsignificantly different from the other examples aside from the fact that it\nresults in a bigger button.\n\nThe following is a straightforward implementation of a large FAB.\n| **Note:** This example passes `CircleShape` as the value for the `shape` parameter, resulting in a round button, rather than a square with rounded borders. You can pass any instance of `Shape`, or set the value of `MaterialTheme.shape.large` to adjust it across your app.\n\n\n```kotlin\n@Composable\nfun LargeExample(onClick: () -\u003e Unit) {\n LargeFloatingActionButton(\n onClick = { onClick() },\n shape = CircleShape,\n ) {\n Icon(Icons.Filled.Add, \"Large floating action button\")\n }\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/compose/snippets/src/main/java/com/example/compose/snippets/components/FloatingActionButton.kt#L96-L104\n```\n\n\u003cbr /\u003e\n\n### Result\n\n**Figure 3.** A large floating action button.\n\nCreate an extended floating action button\n-----------------------------------------\n\nYou can create more complex floating action buttons with the\n[`ExtendedFloatingActionButton`](/reference/kotlin/androidx/compose/material3/package-summary#ExtendedFloatingActionButton(kotlin.Function0,kotlin.Function0,kotlin.Function0,androidx.compose.ui.Modifier,kotlin.Boolean,androidx.compose.ui.graphics.Shape,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.material3.FloatingActionButtonElevation,androidx.compose.foundation.interaction.MutableInteractionSource)) composable. The key difference between it\nand [`FloatingActionButton`](/reference/kotlin/androidx/compose/material3/package-summary#FloatingActionButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.material3.FloatingActionButtonElevation,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function0)) is that it has dedicated `icon` and `text`\nparameters. They let you create a button with more complex content that scales\nto fit its content appropriately.\n\nThe following snippet demonstrates how to implement\n`ExtendedFloatingActionButton`, with example values passed for `icon` and\n`text`.\n\n\n```kotlin\n@Composable\nfun ExtendedExample(onClick: () -\u003e Unit) {\n ExtendedFloatingActionButton(\n onClick = { onClick() },\n icon = { Icon(Icons.Filled.Edit, \"Extended floating action button.\") },\n text = { Text(text = \"Extended FAB\") },\n )\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/compose/snippets/src/main/java/com/example/compose/snippets/components/FloatingActionButton.kt#L72-L79\n```\n\n\u003cbr /\u003e\n\n### Result\n\n**Figure 4.** A floating action button with both text and an icon.\n\nKey points\n----------\n\nAlthough there are several composables you can use to create floating action\nbuttons consistent with Material Design, their parameters don't differ greatly.\nAmong the key parameters you should keep in mind are the following:\n\n- `onClick`: The function called when the user presses the button.\n- `containerColor`: The color of the button.\n- `contentColor`: The color of the icon.\n\nz## Collections that contain this guide\n\nThis guide is part of these curated Quick Guide collections that cover\nbroader Android development goals: \n\n### Display interactive components\n\nLearn how composable functions can enable you to easily create beautiful UI components based on the Material Design design system. \n[Quick guide collection](/develop/ui/compose/quick-guides/collections/display-interactive-components) \n\nHave questions or feedback\n--------------------------\n\nGo to our frequently asked questions page and learn about quick guides or reach out and let us know your thoughts. \n[Go to FAQ](/quick-guides/faq) [Leave feedback](https://issuetracker.google.com/issues/new?component=1573691&template=1993320)"]]