Android - Snackbar vs Toast - uso y diferencia

103

Hemos estado usando solo Toasts en nuestra aplicación hasta ahora y como estamos planeando adoptar algunas características nuevas de la Biblioteca de diseño de soporte, me pregunto cuál es el uso recomendado para Snackbar vs. Toast.

He estado leyendo en el documento de Google Material Snackbar.

Las barras de bocadillos brindan información liviana sobre una operación en una pequeña ventana emergente en la base de la pantalla en el móvil y en la parte inferior izquierda en el escritorio. Son sobre todo elementos en pantalla, incluido el FAB.

y tostadas.

Android también ofrece un brindis en forma de cápsula, que se utiliza principalmente para la mensajería del sistema. Los brindis son similares a los bares, pero no contienen acciones y no se pueden quitar de la pantalla.

Entiendo lo que hacen, pero estoy un poco confundido sobre cuándo usar qué. ¿Significa que:

  • Si no necesito la interacción del usuario, ¿usaría un brindis?
  • ¿Qué se entiende por "mensajería del sistema"? ¿Se aplica eso a la visualización de información cuando sucedió algo importante entre mi aplicación y el sistema Android?
  • Lo que me gusta es la función de deslizar el dedo fuera de la pantalla: ¿sería esa una razón para comenzar a reemplazar las tostadas con barras de bocadillos? (Sin embargo, esta es una pregunta basada en opiniones)
Jakub Holovsky
fuente
Este enlace ya no funciona. ¿Quizás este debería usarse material.io/guidelines/components/snackbars-toasts.html ?
Vadim Kotov

Respuestas:

109

Si no necesito la interacción del usuario, ¿usaría un brindis?

Aún puedes usar Snackbar. No es obligatorio tener una acción con Snackbar.

¿Qué se entiende por "mensajería del sistema"? ¿Se aplica eso a la visualización de información cuando sucedió algo importante entre mi aplicación y el sistema Android?

Creo que esto significa que se deben utilizar Toasts si hay algunos mensajes relacionados con el sistema. Android en su conjunto o algún servicio en segundo plano que pueda estar ejecutando. Por ejemplo, Text-To-Speech is not installed.ORNo Email client found.

Lo que me gusta es la función de deslizar el dedo fuera de la pantalla: ¿sería esa una razón para comenzar a reemplazar las tostadas con Snackbar? (Sin embargo, esta es una pregunta basada en opiniones)

Esa es una de las razones. Pero hay varios otros puntos a favor. Por ejemplo: su brindis permanece en la pantalla incluso cuando finaliza la actividad. Snackbar no lo hace. Hay menos confusión si el brindis no aparece (o sigue apareciendo en caso de que se creen varias tostadas en secuencia) mucho después de salir de la aplicación. Esto no sucederá con Snackbar.

Más que todo: sugiero que si está pensando, debería cambiar. Las SnackBars se ven mucho mejor que las tostadas.

AndroidMechanic - Viral Patel
fuente
18
Saludos, el hecho de que Snackbar esté vivo solo mientras estás en la actividad es realmente útil.
Jakub Holovsky
9
Agregaría que los brindis son preferidos para los mensajes que se refieren a la aplicación en su conjunto además de los mensajes del sistema, mientras que los Snackbars son preferidos para los mensajes que se refieren a la actividad actual. Por ejemplo, si su aplicación busca actualizaciones en el lanzamiento, es mejor usar un brindis para el mensaje de resultado. Si su aplicación tiene elementos que se pueden eliminar, es preferible mostrar el mensaje de respuesta eliminado como una barra de bocadillos con un botón para deshacer.
Subaru Tashiro
10
Otra cosa a tener en cuenta es que los brindis no se muestran cuando las notificaciones están desactivadas.
Horacio
Otra diferencia importante es que solo se muestra un Snackbar en cualquier momento, a diferencia del Toast: puede tener varios Toasts mostrados uno encima del otro, lo que puede ser molesto para el usuario, especialmente considerando el hecho de que no pueden ser eliminados por deslizar.
Firzen
47

Me gustaría agregar una pequeña comparación entre tostadas y snack bar. En mi opinión, si su intención es presentar una advertencia o información que requiera la interacción / reconocimiento del usuario, debe usar un snack bar. Si es solo un mensaje de información que no necesita el reconocimiento del usuario, puede usar brindis.

+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| # |                                Toast                                 |                                 Snackbar                                 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| 1 | Cant be dismissed by swiping                                        | Can dismiss by swiping                                                   |
| 2 | Activity not required (Can show in android home or above other apps) | Can show inside an activity of your app                                  |
| 3 | Cant handle user input                                              | Can handle user input                                                    |
| 4 | Good for showing info messages to user                               | Good for showing warning/info type messages to user that needs attention |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
MP Midhun
fuente
26

Tostada:

  1. Toast se agregó en API Nivel 1
  2. Básicamente, no se requiere actividad (se puede mostrar en el hogar de Android o incluso sobre otras aplicaciones)
  3. No puede realizar una acción basada en la entrada del usuario
  4. No se puede descartar deslizando el dedo
  5. No puede manejar la entrada del usuario como Swipe, Click, etc.
  6. Bueno para mostrar mensajes de información al usuario

SnackBar:

  1. Se agregó SnackBar en API Nivel 23
  2. Se puede mostrar dentro de una actividad de las Aplicaciones.
  3. Puede realizar una acción
  4. Puede descartarse deslizando el dedo
  5. Puede manejar la entrada del usuario
  6. Bueno para mostrar mensajes de tipo información / advertencia al usuario que necesita atención

Uso de SnackBar y Toast:

SnackBar:

SnackBar se puede usar en las áreas donde se debe mostrar un mensaje emergente simple junto con una opción para realizar una acción. Por ejemplo: en la aplicación Gmail, cuando borra el correo, aparece la barra rápida de SnackBar en la parte inferior con el mensaje '1 eliminado' con un botón de acción 'Deshacer'. Al presionar el botón de acción 'Deshacer', se restaurará el correo eliminado.

Tostada:

Toast se puede usar en las áreas donde se deben mostrar los mensajes del sistema.

Por ejemplo:

Cuando su aplicación intenta descargar JSON desde un servidor remoto pero falla debido al tiempo de espera del servidor o al no encontrar recurso, solo necesita mostrar el mensaje de error que dice 'Error ocurrido'. Pero comprenda que el mensaje de Toast no se puede descartar deslizando el dedo. Si aún desea tener la capacidad de descartarlo en su aplicación, elija SnackBar.

Dhaval Jivani
fuente
13

De acuerdo con la documentación oficial en Resumen de mensajes emergentes :

Nota: La clase Snackbar reemplaza a Toast . Si bien Toast todavía es compatible, Snackbar es ahora la forma preferida de mostrar mensajes breves y transitorios al usuario.

y la documentación de (Material Design) Snackbars :

Conceptos relacionados: Android también proporciona una clase Toast con una API similar que se puede usar para mostrar notificaciones a nivel del sistema. Generalmente, los snackbars son el mecanismo preferido para mostrar mensajes de retroalimentación a los usuarios, ya que pueden mostrarse en el contexto de la interfaz de usuario donde ocurrió la acción. Reserve Toast para los casos en los que esto no se pueda hacer.

lcnicolau
fuente
2

La Especificación de diseño de materiales de Google dice que está bien tener un Snackbar sin una acción. Han proporcionado ejemplos de cómo debería verse una Snackbar si solo muestra una sola cadena. Supongo que "Mensajería del sistema" significa eventos del dispositivo, como la pérdida de la conexión de red, mientras que archivar un correo electrónico es una acción específica de Gmail, por ejemplo.

En aras de la coherencia, tiene sentido elegir una tostada o una barra de aperitivos y aplicarla en toda la aplicación.

fractal
fuente
1
Ese enlace se ha movido: material.io/design/components/snackbars.html
Antonio Vinicius Menezes Medei
1

La respuesta corta es que esas son 2 formas de comunicar cosas al usuario que suceden en segundo plano, y puedes alcanzar una de ellas, ambas están bien. Solo asegúrate de usar el mismo y no alternar entre ellos.

La respuesta larga:

  • No, eso significa que si necesitas alguna acción debes usar Snackbar. Aún puede usar Snackbar solo para mensajes (como "Carga finalizada").
  • Por "sistema" no significa solo sistema Android. Por ejemplo, si hubo un problema de análisis json mientras obtenía información de su servidor, aún puede usar toast para permitir que el usuario haya tenido un problema mientras se comunica con el servidor.
  • Si realmente necesitas borrar esto, es una razón para elegir Snackbar.
shem
fuente
1

Nuestro equipo de diseño también está considerando usar tostadas o barras de bocadillos. Llegamos a la conclusión de que la aplicación debería usar barras de bocadillos dada su flexibilidad.

Los brindis solo deben usarse cuando necesitamos un mensaje de información de cadena corta y persistente que aún tenga sentido en diferentes pantallas.

Vennsoh
fuente
1

Diferencia entre Toast y Snackbar Android

  • Los mensajes tostados se pueden personalizar e imprimir en cualquier lugar de la pantalla, pero una barra de bocadillos solo se puede mostrar en la parte inferior de la pantalla.
  • Un mensaje de brindis no tiene un botón de acción, pero Snackbar puede tener un botón de acción opcionalmente.
  • El mensaje de brindis no puede desactivarse hasta que finalice el límite de tiempo, pero Snackbar se puede quitar antes del límite de tiempo.
  • Puede establecer cuánto tiempo se mostrará el mensaje utilizando estos tres valores diferentes.
    Snackbar.LENGTH_LONG
    Snackbar.LENGTH_SHORT
    Snackbar.LENGTH_INDEFINITE

Uso

tostada

Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

Snackbar

Snackbar snackbar = Snackbar.make(view,"This is Simple Snackbar",Snackbar.LENGTH_SHORT);
snackbar.show();
Velmurugan Murugesan
fuente
0

Android también ofrece un brindis en forma de cápsula, que se utiliza principalmente para la mensajería del sistema.

Creo que con "mensajería del sistema" también se refieren al hecho de que se mostrará un brindis durante un tiempo específico y no se puede descartar incluso si el usuario navega por las actividades e incluso si la aplicación se mueve a un segundo plano.

Considero una ventaja del snackbar limitar su alcance a una actividad y poder descartarla.

Peter F
fuente