Un botón de acción flotante (BAF) es un botón circular que activa la acción principal en la IU de tu app. En este documento, se muestra cómo agregar un BAF al diseño, personalizar parte de su aspecto y responder cuando se presionan los botones.
Para obtener más información sobre cómo diseñar un BAF para tu app de acuerdo con los lineamientos de Material Design, consulta BAF de Material Design .
Cómo agregar el botón de acción flotante a tu diseño
En el siguiente código, se muestra cómo el
FloatingActionButton
aparece en tu archivo de diseño:
<com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:src="@drawable/ic_my_icon" android:contentDescription="@string/submit" android:layout_margin="16dp" />
De manera predeterminada, el BAF está coloreado por el atributo colorAccent, que puedes
personalizar con la paleta de colores del tema.
Puedes configurar otras propiedades de BAF utilizando atributos XML o bien métodos correspondientes, como los que siguen:
- El tamaño del BAF mediante el atributo
app:fabSizeo elsetSize()método - El color de ondas del BAF, utilizando el atributo
app:rippleColoro elsetRippleColor()método - El ícono de BAF con el atributo
android:srco elsetImageDrawable()método
Cómo responder a presiones de botones
Puedes aplicar un
View.OnClickListener para
manejar los toques del BAF. Por ejemplo, en el siguiente código, se muestra un
Snackbar cuando
el usuario presiona el BAF:
Kotlin
val fab: View = findViewById(R.id.fab) fab.setOnClickListener { view -> Snackbar.make(view, "Here's a Snackbar", Snackbar.LENGTH_LONG) .setAction("Action", null) .show() }
Java
FloatingActionButton fab = findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Here's a Snackbar", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } });
A fin de obtener más información sobre las funciones del BAF, consulta la referencia de la API
para
FloatingActionButton.