Puedes usar un
Snackbar
a
mostrar un mensaje breve al usuario. Desmarcar “Me gusta”
Notificaciones,
desaparece automáticamente después de un período corto. Un Snackbar
es
ideal para mensajes breves en los que el usuario no necesita tomar medidas. Por ejemplo, un
de correo electrónico puede usar un Snackbar
para indicarle al usuario que la app
enviado correctamente un correo electrónico.
Cómo usar un objeto CoordinatorLayout
Un Snackbar
se adjunta a una vista. El Snackbar
proporciona una funcionalidad básica si se adjunta a cualquier objeto derivado del
Clase View
, como
cualquiera de los objetos de diseño comunes. Sin embargo, si Snackbar
es
se adjunta a una
CoordinatorLayout
,
Snackbar
obtiene funciones adicionales:
- El usuario puede descartar la
Snackbar
deslizándola hacia afuera. - El diseño mueve otros elementos de la IU cuando aparece
Snackbar
. Por ejemplo, si el diseño tiene unaFloatingActionButton
, el diseño mueve el botón hacia arriba cuando muestra unSnackbar
, en lugar de de dibujar elSnackbar
en la parte superior del botón. Puedes ver cómo esto se ve en la figura 1.
La clase CoordinatorLayout
proporciona un superconjunto de la
funcionalidad de
FrameLayout
Si tu app ya usa un FrameLayout
, puedes reemplazar ese diseño.
con un CoordinatorLayout
para habilitar el Snackbar
completo
funcionalidad. Si tu app usa otros objetos de diseño, ajusta el diseño existente
elementos en un CoordinatorLayout
, como se muestra a continuación
ejemplo:
<android.support.design.widget.CoordinatorLayout android:id="@+id/myCoordinatorLayout" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- Here are the existing layout elements, now wrapped in a CoordinatorLayout. --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- ...Toolbar, other layouts, other elements... --> </LinearLayout> </android.support.design.widget.CoordinatorLayout>
Establece una etiqueta android:id
para tu CoordinatorLayout
.
Necesitas el ID del diseño cuando muestras el mensaje.
Muestra un mensaje
Hay dos pasos para mostrar un mensaje. Primero, creas un
Snackbar
con el texto del mensaje. Luego, llamas a la API de ese objeto
show()
para mostrar el mensaje al usuario.
Crea un objeto Snackbar
Crea un objeto Snackbar
llamando al método estático
Snackbar.make()
. Cuando crees el elemento Snackbar
, especifica el mensaje que
y la cantidad de tiempo para mostrar el mensaje:
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- vista
-
La vista a la que se adjunta el
Snackbar
. El método busca jerarquía de vistas desde la vista pasada hasta que alcanza unCoordinatorLayout
o la vista de contenido de la decoración de la ventana Por lo general, es más fácil pasar elCoordinatorLayout
. que incluyen tu contenido. - stringId
- El ID de recurso del mensaje que deseas mostrar. Esto se puede formatear o texto sin formato.
- de vistas
-
Es la cantidad de tiempo que se muestra el mensaje. Puede ser
LENGTH_SHORT
oLENGTH_LONG
Muestra el mensaje al usuario
Después de crear el Snackbar
, llama a su show()
.
método para mostrar Snackbar
al usuario:
Kotlin
mySnackbar.show()
Java
mySnackbar.show();
El sistema no muestra varios objetos Snackbar
al mismo tiempo.
tiempo, por lo tanto, si la vista muestra actualmente otro Snackbar
, el
el sistema pone en cola tu Snackbar
y lo muestra después del
Snackbar
vence o se descarta.
Si quieres mostrar un mensaje al usuario y no necesitas llamar a
Snackbar
, no es necesario que conserves el
referencia a Snackbar
después de llamar a show()
. Para
Por eso, es común usar el encadenamiento de métodos para crear y mostrar
Snackbar
en una sentencia:
Kotlin
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()
Java
Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT) .show();