新增 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
本身時使用。