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

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

Я читал документ о снэк-баре материалов Google < / em>

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

и тосты.

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

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

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

person Jakub Holovsky    schedule 23.12.2015    source источник
comment
Эта ссылка больше не работает. Возможно, стоит использовать этот material.io/guidelines/components/snackbars-toasts.html < / а>?   -  person Vadim Kotov    schedule 30.03.2018


Ответы (9)


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

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

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

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

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

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

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

person AndroidMechanic - Viral Patel    schedule 23.12.2015
comment
Ура, то, что Snackbar остается живым, только пока вы занимаетесь, действительно полезно. - person Jakub Holovsky; 23.12.2015
comment
Я бы добавил, что тосты предпочтительнее для сообщений, которые относятся к приложению в целом, в дополнение к системным сообщениям, в то время как Snackbars предпочтительнее для сообщений, которые относятся к текущему действию. Например, если ваше приложение проверяет наличие обновлений при запуске, лучше использовать тост для сообщения о результате. Если в вашем приложении есть элементы, которые можно удалить, лучше отображать удаленное ответное сообщение в виде закусочной с кнопкой отмены. - person Subaru Tashiro; 02.01.2016
comment
Еще следует отметить, что тосты не отображаются, когда уведомления отключены. - person Horatio; 13.12.2016
comment
Также важным отличием является то, что только одна Snackbar отображается в любое время, в отличие от Toast - вы можете отображать несколько тостов друг над другом, что может раздражать пользователя, особенно с учетом того факта, что их нельзя удалить смахиванием. - person Firzen; 16.09.2019

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

+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| # |                                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 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
person Midhun MP    schedule 24.12.2015

Тост:

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

SnackBar:

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

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

SnackBar:

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

Тост:

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

Например:

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

person Dhaval Jivani    schedule 04.03.2016

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

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

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

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

person lcnicolau    schedule 14.11.2018

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

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

person fractalwrench    schedule 23.12.2015
comment
Эта ссылка перемещена: material.io/design/components/snackbars.html - person Antônio Medeiros; 07.08.2018

Разница между 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();
person Velmurugan Murugesan    schedule 30.07.2020

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

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

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

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

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

person Vennsoh    schedule 09.10.2016

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

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

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

person Peter F    schedule 21.11.2018