Android – Snackbar vs Toast – 使用和区别

我们已经在我们的应用程序中使用Toast了,因为我们正在计划采用支持devise库中的一些新function。我想知道什么是Snackbar与Toast的推荐用法。

我一直在阅读谷歌博客。

SnackBars提供轻量级的反馈,在手机屏幕底部和桌面左下方的小popup窗口中进行操作。 他们超过了屏幕上的元素,包括FAB。

和敬酒。

Android还提供了一个胶囊形状的吐司,主要用于系统消息传递。 敬酒类似于小吃店,但不包含行动,不能从屏幕上刷掉。

我明白他们做了什么,但是当我使用什么的时候,我有些困惑。 这是否意味着:

  • 如果我不需要用户交互,我会使用敬酒?
  • 什么是“系统消息”? 这是否适用于在我的应用和Android系统之间发生重要事情时显示信息?
  • 我喜欢的是刷屏function – 这是一个开始用小吃店取代烤面包的理由吗? (虽然这是一个有点意见的问题)

如果我不需要用户交互,我会使用敬酒?

你仍然可以使用零食吧。 小吃店不是强制性的。

什么是“系统消息”? 这是否适用于在我的应用和Android系统之间发生重要事情时显示信息?

我相信这意味着如果有关于系统的消息,敬酒将被使用。 无论是作为一个整体或一些后台服务,您可能正在运行。 如Text-To-Speech is not installed.No Email client found.

我喜欢的是刷屏function – 这是一个开始用小吃店取代烤面包的理由吗? (虽然这是一个有点意见的问题)

这是一个原因。 但还有其他几点加分。 举个例子: 即使活动结束,你的敬酒仍然在屏幕上。 小吃店不。 如果在应用程序退出之后很长一段时间内没有popup(或者在多个Toast创build的情况下不断popup),那么就不会有混乱。 小吃店不会发生这种情况。

更重要的是:我build议如果你在想,你应该改变。 SnackBars看起来比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 | +---+----------------------------------------------------------------------+--------------------------------------------------------------------------+ 

吐司:

  1. 吐司被添加到API级别1
  2. 基本上不需要活动(可以显示在Android家庭或甚至高于其他应用程序)
  3. 它不能根据用户input执行操作
  4. 它不能被刷卡解雇
  5. 它不能处理像刷卡,点击等用户input
  6. 很适合向用户显示信息消息

小吃店:

  1. SnackBar被添加到API Level 23中
  2. 它可以显示在应用程序的活动中
  3. 它可以执行一个动作
  4. 它可以通过刷卡解雇
  5. 它可以处理用户input
  6. 适合向需要注意的用户显示警告/信息types的信息

SnackBar和Toast的用法:

小吃店:

SnackBar可用于需要显示简单popup消息的区域以及执行操作的选项。 例如:在GMail应用程序中,当您删除邮件时,快速SnackBar显示在底部,并带有“撤消”操作button的消息“1已删除”。 按下“撤销”操作button后,被删除的邮件将被恢复。

吐司:

Toast可以在需要显示系统消息的地方使用。

例如:

当您的应用程序尝试从远程服务器下载JSON时,由于服务器超时或未find资源而失败,只需显示错误消息,说明发生了错误。 但了解Toast消息不能通过刷卡消除。 如果你仍然想要在应用程序中解散它,可以去SnackBar。

谷歌的材料devise规范说,没有任何行动就可以有一个小吃店。 他们提供了一个Snackbar应该只显示一个String的例子。 我假定“系统消息”意味着设备事件,例如networking连接丢失,而存档电子邮件是Gmail特定的操作。

为了一致性,selectToast或Snackbar是有意义的,并将其应用于整个应用程序。

简单的答案是,这是两种方式与用户沟通后台发生的事情,你可以达到其中一个,他们都很好。 只要确保你使用同一个,而不是来回切换。

漫长的回答:

  • 不,这意味着如果你需要一些行动,你必须使用小吃店。 你仍然可以使用Snackbar只为消息(如“上传完成”)。
  • “系统”并不意味着只是Android系统。 例如,如果在从服务器获取信息时出现jsonparsing问题,仍然可以使用toast来让用户在与服务器通信时出现问题。
  • 如果你真的需要把它擦掉,那么这个绝对是select小吃店的理由

我们的devise团队正在考虑使用吐司或小吃店。 我们得出的结论是,应用程序应该使用小吃棒给予其灵活性。

只有当我们需要一个持续的,短的string,信息消息 ,仍然在不同的屏幕上有意义的时候,应该只使用敬酒。