Android - Snackbar vs Toast - utilizzo e differenza


103

Finora abbiamo utilizzato solo Toast nella nostra applicazione e poiché stiamo pianificando di adottare alcune nuove funzionalità dalla Support Design Library, mi chiedo quale sia l'utilizzo consigliato per Snackbar rispetto a Toast.

Ho letto sul materiale di Google snackbar doc.

Gli snack bar forniscono un feedback leggero su un'operazione in un piccolo popup alla base dello schermo sui dispositivi mobili e in basso a sinistra sul desktop. Sono soprattutto gli elementi sullo schermo, compreso il FAB.

e toast.

Android fornisce anche un toast a forma di capsula, utilizzato principalmente per la messaggistica di sistema. I toast sono simili agli snack bar ma non contengono azioni e non possono essere spostati fuori dallo schermo.

Capisco cosa fanno ma sono un po 'confuso quando usare cosa. Significa che:

  • Se non richiedo l'interazione dell'utente, userei un brindisi?
  • Cosa si intende per "messaggistica di sistema"? Ciò si applica alla visualizzazione delle informazioni quando è successo qualcosa di importante tra la mia app e il sistema Android?
  • Quello che mi piace è la funzione di scorrimento fuori dallo schermo: sarebbe un motivo per iniziare a sostituire i toast con gli snack bar? (questa è una domanda basata sull'opinione)

Questo collegamento non funziona più. Forse questo dovrebbe essere usato material.io/guidelines/components/snackbars-toasts.html ?
Vadim Kotov

Risposte:


109

Se non richiedo l'interazione dell'utente, userei un brindisi?

Puoi ancora usare Snackbar. Non è obbligatorio eseguire un'azione con Snackbar.

Cosa si intende per "messaggistica di sistema"? Ciò si applica alla visualizzazione delle informazioni quando è successo qualcosa di importante tra la mia app e il sistema Android?

Credo che questo significhi che i toast devono essere utilizzati se ci sono alcuni messaggi relativi al sistema. O Android nel suo insieme o qualche servizio in background che potresti essere in esecuzione. Ad esempio Text-To-Speech is not installed.ORNo Email client found.

Quello che mi piace è la funzione di scorrimento fuori dallo schermo: sarebbe un motivo per iniziare a sostituire i toast con Snackbar? (questa è una domanda basata sull'opinione)

Questa è una delle ragioni. Ma ci sono molti altri punti a favore. Ad esempio: il tuo brindisi rimane sullo schermo anche quando l'attività è terminata. Snackbar no. C'è meno confusione se il messaggio di avviso non viene visualizzato (o continua a comparire in caso di creazione di più toast in sequenza) molto tempo dopo l'uscita dall'app. Questo non accadrà con Snackbar.

Più di tutto: ti suggerisco se stai pensando, dovresti cambiare. Gli snack bar sembrano molto meglio dei toast.


18
Ciao, il punto con Snackbar che è vivo solo mentre sei in attività è davvero utile.
Jakub Holovsky

9
Aggiungerei che i Toast sono preferiti per i messaggi che fanno riferimento all'app nel suo complesso oltre ai messaggi di sistema, mentre gli Snackbar sono preferiti per i messaggi che si riferiscono all'attività corrente. Ad esempio, se la tua app verifica la presenza di aggiornamenti all'avvio, è meglio utilizzare un avviso popup per il messaggio del risultato. Se la tua app ha elementi che possono essere eliminati, è preferibile mostrare il messaggio di risposta eliminato come snackbar con un pulsante Annulla.
Subaru Tashiro

10
Un'altra cosa da notare è che i toast non vengono visualizzati quando le notifiche sono disattivate.
Horatio

Un'altra differenza importante è che viene mostrato solo uno Snackbar alla volta, a differenza del Toast: puoi avere più Toast mostrati uno sopra l'altro, il che può essere fastidioso per l'utente, soprattutto considerando il fatto che non possono essere rimossi da strisciata.
Firzen

47

Vorrei aggiungere un piccolo confronto tra toast e snack bar. A mio parere, se la tua intenzione è presentare un avviso o informazioni che richiedono l'interazione / riconoscimento dell'utente, dovresti utilizzare uno snack bar. Se è solo un messaggio informativo che non richiede alcun riconoscimento da parte dell'utente, è possibile utilizzare toast.

+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| # |                                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 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+

26

Crostini:

  1. Toast è stato aggiunto nel livello API 1
  2. Fondamentalmente l'attività non è richiesta (può essere mostrata sulla home di Android o anche sopra altre app)
  3. Non può eseguire un'azione basata sull'input dell'utente
  4. Non può essere eliminato scorrendo
  5. Non può gestire l'input dell'utente come Swipe, Click ecc.
  6. Ottimo per mostrare messaggi informativi all'utente

Snack bar:

  1. SnackBar è stato aggiunto nel livello API 23
  2. Può essere mostrato all'interno di un'attività delle Applicazioni
  3. Può eseguire un'azione
  4. Può essere eliminato scorrendo
  5. Può gestire l'input dell'utente
  6. Ottimo per mostrare messaggi di tipo avviso / informazioni all'utente che necessita di attenzione

Utilizzo di SnackBar e Toast:

Snack bar:

SnackBar può essere utilizzato nelle aree in cui è necessario visualizzare un semplice messaggio popup insieme a un'opzione per eseguire un'azione. Ad esempio: nell'applicazione GMail, quando si elimina la posta, nella parte inferiore viene visualizzato SnackBar rapido con il messaggio "1 eliminato" con un pulsante di azione "Annulla". Premendo il pulsante di azione "Annulla", la posta eliminata verrà ripristinata.

Crostini:

Toast può essere utilizzato nelle aree in cui devono essere visualizzati i messaggi di sistema.

Per esempio:

Quando la tua app tenta di scaricare JSON dal server remoto ma non riesce a causa di Timeout del server o Nessuna risorsa trovata, devi solo visualizzare il messaggio di errore che dice che "Si è verificato un errore". Ma comprendi che il messaggio di Toast non può essere ignorato scorrendo. Se vuoi ancora avere la possibilità di chiuderlo nella tua app, vai su SnackBar.


13

Secondo la documentazione ufficiale in Panoramica dei messaggi pop-up :

Nota: la classe Snackbar sostituisce Toast . Sebbene Toast sia attualmente ancora supportato, Snackbar è ora il modo preferito per mostrare all'utente brevi messaggi temporanei.

e la documentazione di (Material Design) Snackbars :

Concetti correlati: Android fornisce anche una classe Toast con un'API simile che può essere utilizzata per visualizzare le notifiche a livello di sistema. In genere, le barrette sono il meccanismo preferito per visualizzare i messaggi di feedback agli utenti, poiché possono essere visualizzati nel contesto dell'interfaccia utente in cui si è verificata l'azione. Riserva Toast per i casi in cui non è possibile farlo.


2

La specifica di progettazione dei materiali di Google afferma che è consentito avere uno snack bar senza un'azione. Hanno fornito esempi di come dovrebbe apparire uno Snackbar se visualizza solo una singola stringa. Presumo che "Messaggistica di sistema" significhi eventi del dispositivo come la perdita della connessione di rete, mentre l'archiviazione di un'email è un'azione specifica di Gmail, ad esempio.

Per motivi di coerenza, ha senso scegliere un toast o uno snackbar e applicarlo a tutta l'app.



1

La risposta breve è che questi sono 2 modi per comunicare all'utente cose che accadono in background, e puoi raggiungerne uno, entrambi vanno bene. Assicurati solo di utilizzare lo stesso e di non passare da uno all'altro.

La lunga risposta:

  • No, significa che se hai bisogno di qualche azione devi usare Snackbar. Puoi comunque utilizzare Snackbar solo per i messaggi (come "Caricamento completato").
  • Per "sistema" non si intende solo sistema Android. Ad esempio, se si è verificato un problema di analisi json durante il recupero delle informazioni dal server, è comunque possibile utilizzare toast per consentire all'utente che si sia verificato un problema durante la comunicazione con il server.
  • Se hai davvero bisogno di cancellarlo, questo è assolutamente un motivo per scegliere Snackbar

1

Il nostro team di progettazione sta cercando di utilizzare anche toast o snack bar. Siamo giunti alla conclusione che l'app dovrebbe utilizzare snackbar data la sua flessibilità.

I messaggi di avviso dovrebbero essere utilizzati solo quando abbiamo bisogno di un messaggio informativo persistente, di breve durata, che abbia ancora senso su schermate diverse.


1

Differenza tra Toast e Snackbar Android

  • I messaggi di brindisi possono essere personalizzati e stampati ovunque sullo schermo, ma uno snackbar può essere mostrato solo nella parte inferiore dello schermo.
  • Un messaggio di Toast non ha un pulsante di azione, ma Snackbar potrebbe avere un pulsante di azione facoltativamente.
  • Il messaggio di Toast non può essere disattivato fino alla fine del tempo limite, ma Snackbar può essere cancellato prima del limite di tempo.
  • È possibile impostare la durata di visualizzazione del messaggio utilizzando questi tre diversi valori.
    Snackbar.LENGTH_LONG
    Snackbar.LENGTH_SHORT
    Snackbar.LENGTH_INDEFINITE

uso

Crostini

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

Snack bar

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

0

Android fornisce anche un toast a forma di capsula, utilizzato principalmente per la messaggistica di sistema.

Penso che con "messaggistica di sistema" si riferiscano anche al fatto che un avviso popup verrà mostrato per un determinato orario e non può essere ignorato anche se l'utente naviga tra le attività e anche se l'app viene spostata in background.

Considero un vantaggio di snackbar limitare il suo campo di applicazione a un'attività e poterla escludere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.