Android - Snackbar vs Toast - використання та різниця


103

Поки ми використовували лише Tost в нашому додатку, і, як ми плануємо прийняти нові функції з бібліотеки підтримки дизайну, мені цікаво, що рекомендується використовувати для Snackbar vs. Toast.

Я читав на закусочній документі матеріал Google.

Снек-бар надає легкий зворотний зв’язок про операцію в невеликому спливаючому вікні в основі екрана на мобільному пристрої та внизу зліва на робочому столі. Вони є перш за все елементами на екрані, включаючи FAB.

і тости.

Android також пропонує тост у формі капсули, в основному використовується для обміну повідомленнями в системі. Тости схожі на закусочні, але не містять дій і їх неможливо перевести на екран.

Я розумію, що вони роблять, але мене трохи бентежить, коли використовувати. Чи означає це, що:

  • Якщо мені не потрібна взаємодія з користувачем, я б застосував тост?
  • Що розуміється під "системними повідомленнями"? Це стосується відображення інформації, коли між моїм додатком та системою Android сталося щось важливе?
  • Що мені подобається - це функція екранування екрана - чи це буде причиною почати замінювати тости закусочними? (це питання, яке базується на думках)

Це посилання більше не працює. Можливо, для цього слід використовувати material.io/guidelines/components/snackbars-toasts.html ?
Вадим Котов

Відповіді:


109

Якщо мені не потрібна взаємодія з користувачем, я б застосував тост?

Ви все ще можете використовувати Snackbar. Не обов’язково проводити дії зі Снекбаром.

Що розуміється під "системними повідомленнями"? Це стосується відображення інформації, коли між моїм додатком та системою Android сталося щось важливе?

Я вважаю, що це означає, що тости потрібно використовувати, якщо є якісь повідомлення, що стосуються системи. Або андроїд в цілому, або якась фонова служба, яку ви можете працювати. Наприклад, Text-To-Speech is not installed.АБОNo Email client found.

Що мені подобається, це функція екранування екрана - чи це буде причиною почати замінювати тости на Snackbar? (це питання, яке базується на думках)

Це одна з причин. Але є кілька інших плюсів. Наприклад: Ваш тост залишається на екрані, навіть коли діяльність закінчена. Закусочна ні. Менше плутанини, якщо тост не спливає (або продовжує вискакувати у разі послідовного створення декількох тостів) довгий час після виходу програми. З Snackbar цього не станеться.

Більше всього: я пропоную, якщо ви думаєте, вам слід переключитися. SnackBars виглядають набагато краще, ніж тости.


18
Будьте здорові, справа в тому, що Snackbar залишається живим лише під час занять, і справді корисний.
Якуб Головський

9
Я б додав, що Toasts є кращим для повідомлень, які стосуються додатка в цілому, крім системних повідомлень, в той час як закусочні переважні для повідомлень, що стосуються поточної активності. Наприклад, якщо ваша програма перевіряє наявність оновлень при запуску, найкраще використовувати тост для повідомлення про результат. Якщо у вашій програмі є елементи, які можна видалити, її віддати перевагу показувати видалене повідомлення відповіді у вигляді закусочної панелі за допомогою кнопки скасування.
Subaru Tashiro

10
Ще одне, що слід зазначити, - тости не відображаються, коли сповіщення вимкнено.
Гораціо

Також важливою відмінністю є те, що лише одна закусочна відображається в будь-який час, на відміну від Toast - у вас може бути кілька тостів, показаних один на одного, що може дратувати користувача, особливо враховуючи той факт, що їх не можна видалити розмахуючи.
Фірцен

47

Я хотів би додати невелике порівняння між тостом і закусочною. На мою думку, якщо ви маєте намір подати попередження або інформацію, яка потребує взаємодії / підтвердження користувача, вам слід скористатися закусочною. Якщо це просто інформаційне повідомлення, яке не потребує підтвердження користувача, ви можете використовувати тост.

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

Тост:

  1. Тост додано в API рівня 1
  2. В основному активність не потрібна (може відображатися в домашніх умовах Android або навіть над іншими програмами)
  3. Він не може виконувати дію на основі введення користувача
  4. Його не можна відхилити, провевши пальцем
  5. Він не може обробляти введення користувача, як-от Swipe, Click тощо.
  6. Добре підходить для показу інформаційних повідомлень користувачеві

Генделик:

  1. SnackBar додано в API рівня 23
  2. Це може бути показано всередині програми Програми
  3. Він може виконувати дію
  4. Його можна відхилити, провевши пальцем
  5. Він може обробляти введення користувача
  6. Підходить для показу попереджувальних / інформаційних типів повідомлення користувачеві, який потребує уваги

Використання SnackBar і тостів:

Генделик:

SnackBar можна використовувати в областях, де потрібно відображати просте спливаюче повідомлення разом з можливістю виконувати дії. Наприклад: у програмі GMail, коли ви видаляєте пошту, швидкий дисплей SnackBar внизу із повідомленням "1 Видалено" кнопкою дії "Скасувати". Якщо натиснути кнопку "Скасувати", видалена пошта буде відновлена.

Тост:

Тост можна використовувати в областях, де потрібно відображати системні повідомлення.

Наприклад:

Коли ваша програма намагається завантажити JSON з віддаленого сервера, але вона не працює через тайм-аут сервера або ресурс не знайдено, вам просто потрібно відобразити повідомлення про помилку із повідомленням про те, що "Помилка виникла". Але зрозумійте, що повідомлення "Тост" не можна відхилити, провевши пальцем. Якщо ви все ще хочете мати можливість відхиляти це у своєму додатку, перейдіть на SnackBar.


13

Згідно з офіційною документацією при огляді спливаючих повідомлень :

Примітка: Клас Snackbar замінює тост . Хоча Toast в даний час підтримується, Snackbar тепер є кращим способом відображення коротких, тимчасових повідомлень користувачеві.

і (Матеріал дизайну) документація на закусочні :

Пов'язані поняття: Android також пропонує класу Toast з подібним API, який можна використовувати для відображення сповіщень на рівні системи. Взагалі, закусочні є кращим механізмом відображення повідомлень зворотного зв’язку користувачам, оскільки вони можуть відображатися в контексті інтерфейсу користувача, де відбулася дія. Зарезервуйте тост для випадків, коли цього неможливо зробити.


2

Специфікація матеріального дизайну Google говорить, що нормально мати закусочну без дій. Вони надали приклади того, як має виглядати Snackbar, якщо на ньому відображається лише одна струна. Я припускаю, що "Системні повідомлення" означають, що події пристрою, такі як мережеве з'єднання, втрачаються - тоді як архівування електронної пошти - це специфічна дія Gmail, наприклад.

Заради послідовності є сенс вибрати тост або закусочну і застосувати це у всьому додатку.



1

Коротка відповідь полягає в тому, що це два способи донести до користувача речі, які відбуваються на задньому плані, і ви можете досягти одного з них, вони обидва чудово. Просто переконайтеся, що ви використовуєте той самий і не перемикаєтесь між ними вперед і назад.

Довга відповідь:

  • Ні, це означає, що якщо вам потрібні певні дії, ви повинні використовувати Snackbar. Ви все ще можете використовувати Snackbar лише для повідомлень (наприклад, "Завантаження закінчено").
  • Під "системою" це не означає лише систему Android. Наприклад - якщо під час отримання інформації з вашого сервера виникла проблема розбору json, ви все одно можете використовувати тост, щоб дозволити користувачеві виникнути проблеми під час спілкування з сервером.
  • Якщо вам справді потрібно зсунути це, це абсолютно не є приводом для того, щоб вибрати Snackbar

1

Наша дизайнерська команда також намагається використовувати або тости, або закуски. Ми дійшли висновку, що додаток повинен використовувати закусочні з огляду на гнучкість.

Тости слід використовувати лише тоді, коли нам потрібне стійке, коротке рядок, інформаційне повідомлення, яке все ще має сенс на різних екранах.


1

Різниця між Toast і Snackbar Android

  • Повідомлення тостів можна налаштувати та надрукувати будь-де на екрані, але Snackbar можна відображати лише внизу екрана.
  • У повідомленні Toast немає кнопки дій, але в Snackbar може бути кнопка дій, як необов'язково.
  • Повідомлення тосту не можна вимкнути, поки не закінчиться обмеження часу, але Snackbar можна вимкнути перед тимчасовим обмеженням.
  • Ви можете встановити, як довго повідомлення відображатиметься за допомогою цих трьох різних значень.
    Snackbar.LENGTH_LONG
    Snackbar.LENGTH_SHORT
    Snackbar.LENGTH_INDEFINITE

Використання

Тост

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

Генделик

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

0

Android також пропонує тост у формі капсули, в основному використовується для обміну повідомленнями в системі.

Я думаю, що під час "системних повідомлень" вони також посилаються на те, що тост буде показаний протягом певного часу і його не можна відхиляти, навіть якщо користувач переходить по всіх заходах і навіть якщо додаток перенесено на другий план.

Вважаю перевагою закусочної обмеження сфери діяльності та можливість її звільнення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.