Android - Snackbar vs Toast - использование и разница

104

До сих пор мы использовали только тосты в нашем приложении, и, поскольку мы планируем внедрить некоторые новые функции из библиотеки поддержки дизайна, мне интересно, что рекомендуется использовать для Snackbar по сравнению с Toast.

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

Панели закусок предоставляют легкую обратную связь об операции в небольшом всплывающем окне в нижней части экрана на мобильном устройстве и в левом нижнем углу на рабочем столе. Они находятся прежде всего над элементами на экране, включая FAB.

и тосты.

Android также предоставляет тосты в форме капсулы, которые в основном используются для обмена сообщениями в системе. Тосты похожи на закусочные, но не содержат действий и не могут быть удалены с экрана.

Я понимаю, что они делают, но немного не понимаю, когда что использовать. Означает ли это, что:

  • Если бы мне не требовалось взаимодействие с пользователем, я бы использовал тост?
  • Что подразумевается под «системным обменом сообщениями»? Применимо ли это к отображению информации, когда между моим приложением и системой Android произошло что-то важное?
  • Что мне нравится, так это функция смахивания за пределы экрана - может ли это быть причиной начать замену тостов на закусочные? (хотя это немного основанный на мнении вопрос)
Якуб Головский
источник
Эта ссылка больше не работает. Может, это стоит использовать material.io/guidelines/components/snackbars-toasts.html ?
Вадим Котов

Ответы:

109

Если бы мне не требовалось взаимодействие с пользователем, я бы использовал тост?

Вы все еще можете использовать Snackbar. Совершать действия с Snackbar не обязательно.

Что подразумевается под «системным обменом сообщениями»? Применимо ли это к отображению информации, когда между моим приложением и системой Android произошло что-то важное?

Я считаю, что это означает, что тосты должны использоваться, если есть какие-то сообщения, относящиеся к системе. Либо Android в целом, либо какая-то фоновая служба, которую вы можете использовать. Например Text-To-Speech is not installed.ИЛИNo Email client found.

Что мне нравится, так это функция смахивания за пределы экрана - может ли это стать причиной для замены тостов на Snackbar? (хотя это немного основанный на мнении вопрос)

Это одна из причин. Но есть еще несколько плюсов. Например: тост остается на экране даже после завершения действия. Snackbar - нет. Будет меньше путаницы, если тост не всплывает (или продолжает всплывать в случае создания нескольких тостов подряд) еще долго после выхода из приложения. С Snackbar этого не произойдет.

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

AndroidMechanic - вирусный Патель
источник
19
Ура, то, что Snackbar остается живым только тогда, когда вы находитесь в действии, действительно полезно.
Якуб Головский
9
Я бы добавил, что тосты предпочтительнее для сообщений, которые относятся к приложению в целом, в дополнение к системным сообщениям, а Snackbars предпочтительнее для сообщений, которые относятся к текущему действию. Например, если ваше приложение проверяет наличие обновлений при запуске, лучше всего использовать тост для сообщения о результате. Если в вашем приложении есть элементы, которые можно удалить, лучше отображать удаленное ответное сообщение в виде закусочной с кнопкой отмены.
Subaru Tashiro
10
Еще следует отметить, что тосты не отображаются, когда уведомления отключены.
Горацио
Также важным отличием является то, что в любое время отображается только одна Snackbar, в отличие от Toast - вы можете отображать несколько тостов друг над другом, что может раздражать пользователя, особенно с учетом того факта, что их нельзя удалить с помощью смахивание.
Firzen
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 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
Midhun MP
источник
26

Тост:

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

Снэк-бар:

  1. SnackBar был добавлен в API уровня 23
  2. Это может быть показано внутри активности приложений
  3. Он может выполнять действие
  4. Его можно закрыть, проведя пальцем по экрану
  5. Он может обрабатывать ввод пользователя
  6. Подходит для отображения предупреждений / информационных сообщений пользователю, требующему внимания

Использование SnackBar и Toast:

Снэк-бар:

SnackBar можно использовать в тех областях, где необходимо отобразить простое всплывающее сообщение с возможностью выполнения действия. Например: в приложении GMail, когда вы удаляете почту, внизу быстро отображается SnackBar с сообщением «1 удалено» с кнопкой действия «Отменить». При нажатии кнопки действия «Отменить» удаленное письмо будет восстановлено.

Тост:

Toast можно использовать в областях, где должны отображаться системные сообщения.

Например:

Когда ваше приложение пытается загрузить JSON с удаленного сервера, но не удается из-за тайм-аута сервера или отсутствия ресурсов, вам просто нужно отобразить сообщение об ошибке, в котором говорится, что «Ошибка произошла». Но поймите, что сообщение Toast нельзя отклонить, проведя пальцем по экрану. Если вы по-прежнему хотите иметь возможность отклонять его в своем приложении, выберите SnackBar.

Дхавал Дживани
источник
13

Согласно официальной документации в обзоре всплывающих сообщений :

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

и документация (Material Design) Snackbars :

Понятия, связанные с данным: Android также предоставляет класс Toast с аналогичным API, который можно использовать для отображения уведомлений на уровне системы. Как правило, закуски являются предпочтительным механизмом для отображения сообщений обратной связи для пользователей, так как они могут отображаться в контексте пользовательского интерфейса, в котором произошло действие. Зарезервируйте тост на случай, если это невозможно.

lcnicolau
источник
2

Спецификация дизайна материалов Google гласит, что иметь Snackbar без действий - это нормально. Они предоставили примеры того, как должен выглядеть Snackbar, если он отображает только одну строку. Я бы предположил, что «Системный обмен сообщениями» означает такие события устройства, как потеря сетевого соединения, тогда как архивирование электронной почты является, например, специфическим действием Gmail.

Для единообразия имеет смысл выбрать тост или снэк-бар и применять их во всем приложении.

фрактальный ключ
источник
1
Эта ссылка перемещена: material.io/design/components/snackbars.html
Антонио Винисиус Менезес Медей
1

Короткий ответ заключается в том, что это два способа сообщить пользователю о том, что происходит в фоновом режиме, и вы можете выбрать один из них, и оба они хороши. Просто убедитесь, что вы используете один и тот же и не переключаетесь между ними.

Длинный ответ:

  • Нет, это означает, что если вам нужно какое-то действие, вы должны использовать Snackbar. Вы по-прежнему можете использовать Snackbar только для сообщений (например, «Загрузка завершена»).
  • Под «системой» это не означает просто систему Android. Например, если при получении информации с вашего сервера возникла проблема с синтаксическим анализом json, вы все равно можете использовать тост, чтобы сообщить пользователю о проблеме во время связи с сервером.
  • Если вам действительно нужно смахнуть это, это просто повод выбрать Snackbar
шем
источник
1

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

Тосты следует использовать только тогда, когда нам нужно постоянное короткое информационное сообщение, которое по-прежнему имеет смысл на разных экранах.

Vennsoh
источник
1

Разница между Toast и Snackbar Android

  • Тост-сообщения можно настроить и распечатать в любом месте экрана, но панель закусок может отображаться только в нижней части экрана.
  • Сообщение Toast не имеет кнопки действия, но Snackbar может иметь кнопку действия по желанию.
  • Сообщение Toast нельзя отключить до истечения срока, но 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 также предоставляет тосты в форме капсулы, которые в основном используются для обмена сообщениями в системе.

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

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

Питер Ф
источник