添加 Snackbar
材料设计的主要特征之一是添加了 Snackbar
,理论上它取代了以前的 Toast
。根据 Android 文档:
Snackbars 包含与执行操作直接相关的单行文本。它们可能包含文本操作,但没有图标。Toasts 主要用于系统消息传递。它们也显示在屏幕的底部,但可能无法在屏幕外滑动。
Toast 仍然可以在 Android 中用于向用户显示消息,但是如果你决定在应用中选择使用材料设计,则建议你实际使用快餐栏。Snackbar
从底部弹出,而不是在屏幕上显示为叠加层。
以下是它的完成方式:
Snackbar snackbar = Snackbar
.make(coordinatorLayout, "Here is your new Snackbar", Snackbar.LENGTH_LONG);
snackbar.show();
至于显示 Snackbar
的时间长度,我们有类似于 Toast
提供的选项,或者我们可以设置自定义持续时间(以毫秒为单位):
LENGTH_SHORT
LENGTH_LONG
LENGTH_INDEFINITE
setDuration()
(自版本22.2.1
)
你还可以为 Snackbar
添加动态功能,例如 ActionCallback
或自定义颜色。但是在定制 Snackbar
时请注意 Android 提供的设计指南 。
然而,实现 Snackbar
有一个限制。你要实现 Snackbar
的视图的父布局需要是一个 CoordinatorLayout
。这样就可以从底部获得实际的弹出窗口。
这是如何在布局 xml 文件中定义 CoordinatorLayout
:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
//any other widgets in your layout go here.
</android.support.design.widget.CoordinatorLayout>
然后需要在 Activity 的 onCreate
方法中定义 CoordinatorLayout
,然后在创建 Snackbar
本身时使用。