אתם יכולים להשתמש ב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 עם הטקסט של ההודעה. לאחר מכן, קוראים לשיטה (method) של האובייקט show() כדי להציג את ההודעה למשתמש.
יצירת אובייקט Snackbar
יוצרים אובייקט 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(). לכן, נהוג להשתמש בשרשור של methods כדי ליצור ולהציג 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();