您可以使用
Snackbar
到
向使用者顯示簡短訊息取消喜歡
通知,
訊息會在一小段時間過後自動消失Snackbar
是
適合使用者無需操作的簡短訊息。舉例來說
電子郵件應用程式可以使用 Snackbar
,告訴使用者應用程式
成功傳送電子郵件
使用 CoordinatorLayout
Snackbar
已附加至檢視區塊。Snackbar
如果附加至任何衍生自
View
類別,例如
使用任何通用版面配置物件。不過,如果 Snackbar
是
附加至
CoordinatorLayout
,
Snackbar
提供額外功能:
- 使用者只要向外滑動,即可關閉
Snackbar
。 - 版面配置會在
Snackbar
顯示時移動其他 UI 元素。 舉例來說,如果版面配置有FloatingActionButton
, 版面配置會在顯示Snackbar
時將按鈕向上移動 在按鈕上方繪製Snackbar
即可。這張圖顯示了 如圖 1 所示
CoordinatorLayout
類別提供
功能
FrameLayout
。
如果您的應用程式已使用 FrameLayout
,您可以替換該版面配置
使用 CoordinatorLayout
啟用完整的 Snackbar
功能。如果您的應用程式使用其他版面配置物件,請納入現有的版面配置
CoordinatorLayout
中的元素,如下所示
範例:
<android.support.design.widget.CoordinatorLayout android:id="@+id/myCoordinatorLayout" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- Here are the existing layout elements, now wrapped in a CoordinatorLayout. --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- ...Toolbar, other layouts, other elements... --> </LinearLayout> </android.support.design.widget.CoordinatorLayout>
為 CoordinatorLayout
設定 android:id
標記。
顯示訊息時,您需要提供版面配置的 ID。
圖 1. CoordinatorLayout
會將
Snackbar
顯示時向上 FloatingActionButton
。
顯示訊息
顯示訊息有兩個步驟。首先建立一個
Snackbar
物件,包含訊息文字。然後,您可以呼叫該物件的
show()
方法,以便向使用者顯示訊息。
建立 Snackbar 物件
呼叫靜態物件以建立 Snackbar
物件
Snackbar.make()
方法。建立 Snackbar
時,請指定訊息
顯示畫面以及顯示訊息的時間長度:
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- 次觀看
-
要附加
Snackbar
的檢視畫面。這個方法會搜尋 從傳遞的檢視區塊進入階層,直到抵達CoordinatorLayout
或視窗裝飾的內容檢視畫面。 一般來說,傳遞CoordinatorLayout
較為簡單 如何爭取曝光機會 - stringId
- 您要顯示訊息的資源 ID。這可以是格式化或 未格式化的文字
- 時間長度
-
顯示訊息的時間長度。可用的值包括
LENGTH_SHORT
或LENGTH_LONG
。
向使用者顯示訊息
建立 Snackbar
後,呼叫其 show()
向使用者顯示 Snackbar
的方法:
Kotlin
mySnackbar.show()
Java
mySnackbar.show();
系統不會在同一時間顯示多個 Snackbar
物件
因此,如果檢視畫面目前顯示另一個 Snackbar
,
系統會將 Snackbar
排入佇列,並在目前的
Snackbar
過期或已遭關閉。
如果您要向使用者顯示訊息,且不需呼叫
Snackbar
物件的公用程式方法,您不需要保留
,當您呼叫 show()
後,才會參照 Snackbar
。適用對象
所以常見的做法是使用方法鏈結
一個陳述式中的 Snackbar
:
Kotlin
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()
Java
Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT) .show();