אפשר להשתמש ב-Snackbar
כדי להציג הודעה קצרה למשתמש. בניגוד להתראות, ההודעה תיעלם אוטומטית אחרי פרק זמן קצר. Snackbar
הוא אידיאלי להודעות קצרות שהמשתמש לא צריך לבצע בהן פעולה כלשהי. לדוגמה, אפליקציית אימייל יכולה להשתמש ב-Snackbar
כדי להודיע למשתמש שהאימייל נשלח בהצלחה.
שימוש ב-CoordinatorLayout
Snackbar
מצורף לתצוגה. המאפיין Snackbar
מספק פונקציונליות בסיסית אם הוא מצורף לכל אובייקט שמבוסס על הכיתה View
, כמו כל אחד מאובייקטי הפריסה הנפוצים. עם זאת, אם ה-Snackbar
מצורף ל-CoordinatorLayout
, ה-Snackbar
מקבל תכונות נוספות:
- המשתמש יכול לסגור את
Snackbar
על ידי החלקה. - כשהסמל
Snackbar
מופיע, רכיבים אחרים בממשק המשתמש נעים בפריסה. לדוגמה, אם בפריסה יש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>
מגדירים תג android:id
ל-CoordinatorLayout
.
צריך את המזהה של הפריסה כשמציגים את ההודעה.
איור 1. ה-CoordinatorLayout
מזיז את ה-FloatingActionButton
למעלה כשה-Snackbar
מופיע.
הצגת הודעה
יש שני שלבים להצגת הודעה. קודם יוצרים אובייקט Snackbar
עם טקסט ההודעה. לאחר מכן, קוראים לשיטה show()
של האובייקט כדי להציג את ההודעה למשתמש.
יצירת אובייקט של סרגל סטטוסים
יוצרים אובייקט Snackbar
על ידי קריאה ל-method הסטטי Snackbar.make()
. כשיוצרים את Snackbar
, מציינים את ההודעה שמוצגת ואת משך הזמן שבו היא תוצג:
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- צפייה
-
האפשרות שבה רוצים לצרף את
Snackbar
. השיטה מחפשת למעלה במורד היררכיית התצוגות מהתצוגה שהועברה עד שמגיעה ל-CoordinatorLayout
או לתצוגת התוכן של חלון העיצוב. בדרך כלל קל יותר להעביר את ה-CoordinatorLayout
שמקיף את התוכן. - stringId
- מזהה המשאב של ההודעה שרוצים להציג. הטקסט יכול להיות בפורמט או ללא פורמט.
- משך
-
משך הזמן שבו ההודעה תוצג. הערך יכול להיות
LENGTH_SHORT
אוLENGTH_LONG
.
הצגת ההודעה למשתמש
אחרי שיוצרים את ה-Snackbar
, צריך לקרוא לשיטה show()
שלו כדי להציג את ה-Snackbar
למשתמש:
Kotlin
mySnackbar.show()
Java
mySnackbar.show();
המערכת לא מציגה כמה אובייקטים של Snackbar
בו-זמנית, כך שאם בתצוגה מוצג Snackbar
אחר, המערכת תוסיף את ה-Snackbar
שלכם לתור ותציג אותו אחרי שהתוקף של ה-Snackbar
הנוכחי יפוג או שהוא ייסגר.
אם רוצים להציג הודעה למשתמש ולא צריך להפעיל אף אחת מהשיטות של אובייקט Snackbar
, אין צורך לשמור את ההפניה ל-Snackbar
אחרי שמפעילים את show()
. לכן, מקובל להשתמש בשרשרת שיטות כדי ליצור ולהציג 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();