到目前为止,我们一直在我们的应用程序中使用Toasts,因为我们计划采用支持设计库的一些新功能,我想知道Snackbar与Toast的推荐用法是什么。
我一直在阅读 the google material snackbar doc.
Snackbars提供有关小型操作的轻量级反馈 弹出窗口底部的移动设备和左下角 桌面。它们首先是屏幕上的元素,包括 FAB。
和祝酒词。
Android还提供了一种胶囊形状的吐司,主要用于 系统消息。 Toasts与snackbars类似但不包含 行动,不能在屏幕上刷掉。
我明白他们做了什么,但我在使用什么时有点困惑。这是否意味着:
答案 0 :(得分:83)
如果我不需要用户互动,我会使用吐司吗?
你仍然可以使用零食吧。对小吃吧采取行动并非强制性要求。
"系统消息"是什么意思?这是否适用于显示 当我的应用程序与我的应用程序之间发生重要事 Android系统?
我相信这意味着如果有一些与系统有关的消息,就要使用Toasts。无论是作为一个整体的android还是你可能正在运行的一些后台服务。例如。 Text-To-Speech is not installed.
或No Email client found.
我喜欢的是滑动屏幕功能 - 这是一个原因 开始用小吃店取代烤面包片? (这有点基于意见 问题虽然)
这是一个原因。但还有其他几个加分。例如:即使活动结束,您的吐司也会保留在屏幕上。 Snackbar没有。在退出应用程序很久之后,如果toast没有弹出(或者在按顺序创建多个Toast的情况下不断弹出),则会产生较少的混淆。小吃吧不会发生这种情况。
不仅仅是一切:我建议如果你在想,你应该转换。 SnackBars看起来比Toasts好得多。
答案 1 :(得分:40)
我想在吐司和小吃店之间加一个小比较。在我看来,如果您打算提出需要用户互动/确认的警告或信息,您应该使用小吃店。如果它只是一条不需要任何用户确认的信息消息,则可以使用吐司。
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| # | 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 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
答案 2 :(得分:20)
<强>吐司:强>
<强>小吃吧:强>
使用SnackBar和Toast:
<强>小吃吧:强>
SnackBar可用于需要显示简单弹出消息的区域以及执行操作的选项。 例如:在GMail应用程序中,当您删除Mail时,快速SnackBar显示在底部,消息“1已删除”并带有操作按钮“撤消”。按“撤消”操作按钮后,将恢复已删除的邮件。
<强>吐司:强>
Toast可用于需要显示系统消息的区域。
例如:
当您的应用尝试从远程服务器下载JSON但由于服务器超时或未找到资源而失败时,您只需显示错误消息,指出“发生了错误”。但是要了解Toast消息不能被刷卡解雇。如果您仍希望能够在应用程序中解除它,请转到SnackBar。
答案 3 :(得分:8)
根据Pop-up messages overview上的官方文档:
注意: Snackbar类取代了Toast。尽管目前仍支持Toast,但是Snackbar现在是向用户显示简短的临时消息的首选方式。
和(材料设计)Snackbars的文档:
相关概念: Android还提供了Toast类,该类具有类似的API,可用于显示系统级通知。通常,小吃店是向用户显示反馈消息的首选机制,因为它们可以在发生操作的UI上下文中显示。将Toast保留给无法完成的情况。
答案 4 :(得分:2)
Google的Material Design Specification表示没有行动可以获得Snackbar。他们提供了Snackbar如果只显示单个String应该是什么样子的示例。我认为“系统消息”意味着网络连接丢失等设备事件 - 例如,归档电子邮件是Gmail特定的操作。
为了保持一致性,选择Toast或Snackbar是有意义的,并在整个应用程序中应用它。
答案 5 :(得分:2)
Toast和Snackbar Android之间的区别
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();
答案 6 :(得分:1)
简短的回答是,这些是在后台发生的向用户传达事物的两种方式,你可以达到其中一个,它们都很好。只要确保你使用相同的,而不是来回切换。
答案很长:
答案 7 :(得分:1)
我们的设计团队正在考虑使用烤面包或零食。我们得出结论,应用程序应该使用零食栏,因为它具有灵活性。
只有在我们需要持久,短字符串,信息消息时才能使用Toasts,这些信息在不同的屏幕上仍然有意义。
答案 8 :(得分:0)
Android还提供了一个胶囊状的吐司,主要用于系统消息传递。
我认为在“系统消息传递”中,它们还指的是这样的事实:即使用户在各个活动之间导航并且即使该应用程序已移至后台,也只能在特定时间显示祝酒词。 >
我认为,小吃店的一个优势是将其范围限制为一项活动并能够将其消除。