Jusqu'à présent, nous n'utilisons que Toasts dans notre application et comme nous prévoyons d'adopter de nouvelles fonctionnalités de Support Design Library, je me demande quelle est l'utilisation recommandée pour Snackbar par rapport à Toast.

J'ai lu sur la documentation du google material snackbar.

Les snackbars fournissent des commentaires légers sur une opération dans une petite fenêtre contextuelle à la base de l'écran sur mobile et en bas à gauche sur le bureau. Ce sont avant tout des éléments à l'écran, y compris le FAB.

Et des toasts.

Android fournit également un toast en forme de capsule, principalement utilisé pour la messagerie système. Les toasts sont similaires aux barres-collations mais ne contiennent aucune action et ne peuvent pas être retirés de l'écran.

Je comprends ce qu'ils font mais je ne sais pas quand utiliser quoi. Cela signifie-t-il que:

  • Si je n'ai pas besoin d'interaction de l'utilisateur, j'utiliserais un toast?
  • Qu'entend-on par «messagerie système»? Cela s'applique-t-il à l'affichage d'informations lorsqu'un événement important s'est produit entre mon application et le système Android?
  • Ce que j'aime, c'est la fonction de balayage hors de l'écran - serait-ce une raison pour commencer à remplacer les toasts par des snackbars? (c'est une question un peu basée sur l'opinion)
110
Jakub Holovsky 23 déc. 2015 à 12:25

9 réponses

Meilleure réponse

Si je n'ai pas besoin d'interaction de l'utilisateur, j'utiliserais un toast?

Vous pouvez toujours utiliser Snackbar. Il n'est pas obligatoire d'avoir une action avec Snackbar.

Qu'entend-on par «messagerie système»? Cela s'applique-t-il à l'affichage d'informations lorsqu'un événement important s'est produit entre mon application et le système Android?

Je crois que cela signifie que Toasts doit être utilisé s'il y a des messages concernant le système. Soit Android dans son ensemble, soit un service d'arrière-plan que vous utilisez peut-être. Par exemple. Text-To-Speech is not installed. OU No Email client found.

Ce que j'aime, c'est la fonction de balayage hors de l'écran - serait-ce une raison pour commencer à remplacer les toasts par Snackbar? (c'est une question un peu basée sur l'opinion)

C'est une des raisons. Mais il y a plusieurs autres points positifs. Par exemple: Votre toast reste à l'écran même lorsque l'activité est terminée. Snackbar ne le fait pas. Il y a moins de confusion si le toast ne s'affiche pas (ou continue à apparaître en cas de création multiple de Toast en séquence) longtemps après la fermeture de l'application. Cela ne se produira pas avec Snackbar.

Plus que tout: je suggère que si vous réfléchissez, vous devriez changer. Les SnackBars sont bien meilleurs que les Toasts.

113
Αntonis Papadakis 10 août 2020 à 20:20

Je voudrais ajouter une petite comparaison entre le pain grillé et le snack-bar. À mon avis, si votre intention est de présenter un avertissement ou une information nécessitant une interaction / reconnaissance de l'utilisateur, vous devriez utiliser un snack-bar. S'il s'agit simplement d'un message d'information qui ne nécessite aucun accusé de réception, vous pouvez utiliser toast.

+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| # |                                Toast                                 |                                 Snackbar                                 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| 1 | Can’t 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 | Can’t 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 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
50
Midhun MP 24 déc. 2015 à 18:37

Toast:

  1. Toast a été ajouté au niveau d'API 1
  2. Fondamentalement, l'activité n'est pas requise (peut être affichée sur la maison Android ou même au-dessus d'autres applications)
  3. Il ne peut pas effectuer d'action en fonction de l'entrée de l'utilisateur
  4. Il ne peut pas être ignoré en faisant glisser
  5. Il ne peut pas gérer les entrées utilisateur telles que Swipe, Click, etc.
  6. Idéal pour afficher des messages d'information à l'utilisateur

SnackBar:

  1. SnackBar a été ajouté au niveau d'API 23
  2. Il peut être affiché dans une activité des Applications
  3. Il peut effectuer une action
  4. Il peut être rejeté en glissant
  5. Il peut gérer les entrées de l'utilisateur
  6. Idéal pour afficher des messages de type avertissement / info à l'utilisateur qui a besoin d'attention

Utilisation de SnackBar et Toast:

SnackBar:

SnackBar peut être utilisé dans les zones où un simple message contextuel doit être affiché avec une option pour effectuer une action. Par exemple: dans l'application GMail, lorsque vous supprimez Mail, un SnackBar rapide s'affiche en bas avec le message «1 supprimé» avec un bouton d'action «Annuler». En appuyant sur le bouton d’action «Annuler», le courrier supprimé sera restauré.

Toast:

Toast peut être utilisé dans les zones où les messages système doivent être affichés.

Par exemple:

Lorsque votre application essaie de télécharger JSON à partir d'un serveur distant mais échoue en raison du délai d'expiration du serveur ou de l'absence de ressource trouvée, il vous suffit d'afficher le message d'erreur indiquant qu'une "erreur s'est produite". Mais comprenez que le message Toast ne peut pas être ignoré en le faisant glisser. Si vous souhaitez toujours pouvoir le supprimer dans votre application, optez pour SnackBar.

30
Dhaval Jivani 4 mars 2016 à 12:02

D'après la documentation officielle sur Présentation des messages contextuels:

Remarque: Le Snackbar classe remplace Toast. Bien que Toast soit toujours pris en charge, Snackbar est désormais le moyen préféré d'afficher des messages brefs et temporaires à l'utilisateur.

Et documentation de (Material Design) Snackbars:

Concepts associés: Android fournit également un Toast avec une API similaire qui peut être utilisée pour afficher des notifications au niveau du système. En général, les barres-collations sont le mécanisme préféré pour afficher des messages de retour aux utilisateurs, car ils peuvent être affichés dans le contexte de l'interface utilisateur où l'action s'est produite. Réservez Toast pour les cas où cela ne peut pas être fait.

15
lcnicolau 14 nov. 2018 à 23:28

Les Spécifications de conception de matériaux de Google indiquent qu'il est normal d'avoir un snack-bar sans action. Ils ont fourni des exemples de ce à quoi un Snackbar devrait ressembler s'il n'affiche qu'une seule chaîne. Je suppose que «Messagerie système» signifie des événements de l'appareil tels que la perte de la connexion réseau - alors que l'archivage d'un e-mail est une action spécifique à Gmail, par exemple.

Par souci de cohérence, il est logique de choisir un pain grillé ou un snack-bar et de l'appliquer dans toute votre application.

2
fractalwrench 7 août 2018 à 08:20

La réponse courte est que ce sont 2 façons de communiquer à l'utilisateur des choses qui se produisent en arrière-plan, et vous pouvez en faire un pic, elles conviennent toutes les deux. Assurez-vous simplement d'utiliser le même et de ne pas basculer entre eux.

La réponse longue:

  • Non, cela signifie que si vous avez besoin d'action, vous devez utiliser Snackbar. Vous pouvez toujours utiliser Snackbar uniquement pour les messages (comme "Téléchargement terminé").
  • Par «système», cela ne signifie pas uniquement le système Android. Par exemple, s'il y avait un problème d'analyse json lors de l'obtention des informations de votre serveur, vous pouvez toujours utiliser toast pour signaler à l'utilisateur qu'il y a eu un problème lors de la communication avec le serveur.
  • Si vous avez vraiment besoin de faire glisser ceci, c'est absultement une raison de choisir Snackbar
1
shem 23 déc. 2015 à 09:39

Notre équipe de conception envisage également d'utiliser des toasts ou des barres-collations. Nous arrivons à la conclusion que l'application devrait utiliser des barres-collations compte tenu de sa flexibilité.

Les toasts ne doivent être utilisés que lorsque nous avons besoin d'une chaîne courte et persistante, message d'information qui a encore du sens sur différents écrans.

1
Vennsoh 9 oct. 2016 à 23:43

Différence entre Toast et Snackbar Android

  • Les messages Toast peuvent être personnalisés et imprimés n'importe où sur l'écran, mais un Snackbar ne peut être affiché qu'en bas de l'écran.
  • Un message Toast n'a pas de bouton d'action, mais Snackbar peut avoir un bouton d'action en option.
  • Le message Toast ne peut pas être désactivé avant la fin de la limite de temps, mais Snackbar peut être effacé avant la limite de temps.
  • Vous pouvez définir la durée d'affichage du message en utilisant ces trois valeurs différentes.
    Snackbar.LENGTH_LONG
    Snackbar.LENGTH_SHORT
    Snackbar.LENGTH_INDEFINITE

Utilisation

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

Snackbar snackbar = Snackbar.make(view,"This is Simple Snackbar",Snackbar.LENGTH_SHORT);
snackbar.show();
2
Dima Kozhevin 30 juil. 2020 à 11:53

Android fournit également un toast en forme de capsule, principalement utilisé pour la messagerie système.

Je pense qu'avec la "messagerie système", ils se réfèrent également au fait qu'un toast sera affiché pendant un temps spécifique et ne peut pas être rejeté même si l'utilisateur navigue à travers les activités et même si l'application est déplacée en arrière-plan.

Je considère comme un avantage du snack-bar de limiter sa portée à une activité et de pouvoir la rejeter.

1
Peter F 21 nov. 2018 à 13:32