Android-Snackbar vs Toast - zastosowanie i różnica

Do tej pory używaliśmy tylko toastów w naszej aplikacji, a ponieważ planujemy zaadoptować kilka nowych funkcji z biblioteki Support Design, zastanawiam się, jakie jest zalecane użycie Snackbar vs.Toast.

Czytałem na blogu google.

Snackbars zapewniają lekką informację zwrotną o operacji w małym popup u podstawy ekranu na telefon komórkowy i w lewym dolnym rogu na pulpit. Są to przede wszystkim elementy na ekranie, w tym na FAB.

I toasty.

Android zapewnia również tost w kształcie kapsułki, używany głównie do wiadomości systemowe. Tosty są podobne do przekąsek, ale nie zawierają działania i nie można go przesunąć poza ekran.

Rozumiem, co robią, ale jestem trochę zdezorientowany, kiedy użyć czego. Czy to znaczy, że:

  • jeśli nie wymagam interakcji z użytkownikiem użyłbym toastu?
  • co oznacza "wiadomości systemowe"? Czy dotyczy to wyświetlania informacje kiedy między moją aplikacją a systemem Android wydarzyło się coś ważnego?
  • podoba mi się funkcja przesuń ekran - czy to byłby powód, aby zacząć zastępować tosty snackbarami? jest to pytanie oparte na opiniach.]}
Author: ZhiXingZhe - WangYuQi, 2015-12-23

6 answers

Jeśli nie wymagam interakcji z użytkownikiem użyłbym toastu?

Nadal możesz używać snackbara. Działanie z paskiem snackbar nie jest obowiązkowe.

Co oznacza "wiadomości systemowe"? Czy dotyczy to wyświetlania informacje, kiedy coś ważnego wydarzyło się między moją aplikacją a System Android?

Uważam, że oznacza to, że należy używać toastów, jeśli są jakieś messagi odnoszące się do systemu. Albo android jako całość, albo niektóre usługa w tle, którą możesz uruchomić. Np. Text-To-Speech is not installed. LUB No Email client found.

To, co lubię, to funkcja przesuwania ekranu-czy to byłby powód aby zacząć zastępować tosty przekąskami? (jest to nieco opiniotwórcze pytanie)

To jeden z powodów. Ale jest kilka innych plusów. Na przykład: Twój toast pozostaje na ekranie nawet po zakończeniu czynności. Snackbar Nie. jest mniej zamieszania, jeśli toast nie wyskakuje (lub wciąż wyskakuje w przypadku wielokrotnego tworzenia tostów w sekwencji) długo po zakończeniu aplikacji. Z snackbarem tak się nie stanie. [[3]}bardziej niż wszystko: sugeruję, jeśli myślisz, powinieneś się zamienić. Przekąski wyglądają o wiele lepiej niż toasty.
 75
Author: AndroidMechanic - Viral Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-19 07:26:48

Chciałbym dodać małe porównanie tostów i przekąsek. Moim zdaniem, jeśli twoim zamiarem jest przedstawienie ostrzeżenia lub informacji, które wymagają interakcji z użytkownikiem/ potwierdzenia, powinieneś skorzystać z baru z przekąskami. Jeśli jest to tylko wiadomość informacyjna, która nie wymaga potwierdzenia użytkownika, możesz użyć 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 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
 34
Author: Midhun MP,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-24 18:37:01

Toast:

  1. Toast został dodany w API Level 1
  2. zasadniczo aktywność nie jest wymagana (może być wyświetlana na Android home lub nawet nad innymi aplikacjami)
  3. nie może wykonać akcji na podstawie danych wejściowych użytkownika
  4. nie można go odrzucić przesuwając
  5. nie może obsługiwać wprowadzania danych przez użytkownika, takich jak przesunięcie, kliknięcie itp.
  6. dobry do wyświetlania wiadomości informacyjnych dla użytkownika

SnackBar:

  1. SnackBar został dodany w API poziom 23
  2. można pokazać wewnątrz aktywności aplikacji
  3. może wykonać działanie
  4. Można go odrzucić przesuwając]}
  5. może obsługiwać wejście użytkownika
  6. dobry do wyświetlania ostrzeżeń / wiadomości typu info użytkownikowi, który potrzebuje uwagi

Użycie Snackbara i tosta:

SnackBar:

SnackBar może być używany w obszarach, w których ma być wyświetlona prosta wiadomość popup wraz z opcją wykonania akcji. Na przykład: w aplikacji GMail, gdy usuwasz pocztę, quick SnackBar wyświetla się na dole z Komunikatem "1 Deleted" z przyciskiem akcji "Cofnij". Po naciśnięciu przycisku "Cofnij" usunięta poczta zostanie przywrócona.

Toast:

Toast może być używany w obszarach, w których muszą być wyświetlane komunikaty systemowe.

Na Przykład:

Gdy aplikacja próbuje pobrać JSON ze zdalnego serwera, ale nie powiedzie się z powodu limitu czasu serwera lub nie znaleziono zasobów, wystarczy wyświetlić komunikat o błędzie mówiący, że "Wystąpił Błąd". Ale zrozum wiadomość toastu nie może być odrzucona przez przesuwanie. Jeśli nadal chcesz mieć możliwość odrzucenia go w aplikacji, wybierz SnackBar.

 13
Author: Dhaval Jivani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-04 12:02:09

Specyfikacja projektu materiału Google mówi, że można mieć Snackbar bez akcji. Podali przykłady, jak powinien wyglądać Pasek Przystawkowy, jeśli wyświetla tylko pojedynczy ciąg znaków. Zakładam, że "wiadomości systemowe" oznaczają zdarzenia urządzenia, takie jak utrata połączenia sieciowego - podczas gdy Archiwizacja wiadomości e-mail jest działaniem specyficznym dla Gmaila, na przykład.

Ze względu na konsystencję, warto wybrać Toast lub Snackbar i zastosować go w całym swoim app.

 2
Author: fractalwrench,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-07 08:20:38

Krótka odpowiedź jest taka, że są to 2 sposoby komunikowania się z użytkownikiem rzeczy, które dzieją się w tle, a można szczyt jednego z nich, oba są w porządku. Upewnij się tylko, że używasz tego samego i nie przełączasz się między nimi tam iz powrotem.

Długa odpowiedź:

  • nie, to znaczy, że jeśli potrzebujesz jakiejś akcji, musisz użyć Snackbara. Nadal możesz używać Snackbara tylko dla wiadomości (np. "przesyłanie zakończone").
  • przez "system" nie oznacza tylko systemu Android. Na przykład-jeśli wystąpił problem z parsowaniem json podczas uzyskiwania informacji z serwera, nadal możesz użyć toastu, aby pozwolić użytkownikowi, aby wystąpił problem podczas komunikacji z serwerem.
  • Jeśli naprawdę musisz to przesunąć, to jest to powód, aby wybrać Snackbar
 1
Author: shem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-23 09:39:38

Nasz zespół projektantów rozważa użycie tostów lub przekąsek. Doszliśmy do wniosku, że aplikacja powinna używać snackbarów, biorąc pod uwagę jej elastyczność.

Toasty powinny być używane tylko wtedy, gdy potrzebujemy trwałej, krótkiej wiadomości informacyjnej , która nadal ma sens na różnych ekranach.

 1
Author: Vennsoh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-09 23:43:04