אפשר להשתמש ב-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();