אתם יכולים להשתמש ב-Snackbar כדי להציג למשתמש הודעה קצרה. בניגוד להתראות, ההודעה נעלמת אוטומטית אחרי פרק זמן קצר. Snackbar מתאים במיוחד להודעות קצרות שהמשתמש לא צריך לבצע לגביהן פעולה. לדוגמה, אפליקציית אימייל יכולה להשתמש ב-Snackbar כדי להודיע למשתמש שהאפליקציה שלחה אימייל בהצלחה.
שימוש ב-CoordinatorLayout
Snackbar מצורף לתצוגה. ה-Snackbar
מספק פונקציונליות בסיסית אם הוא מצורף לאובייקט כלשהו שנגזר מהמחלקה View, כמו כל אחד מאובייקטי הפריסה הנפוצים. עם זאת, אם Snackbar מצורף
ל-
CoordinatorLayout,
הוא Snackbar מקבל תכונות נוספות:
- המשתמש יכול לסגור את
Snackbarבהחלקה. - הפריסה מזיזה רכיבי ממשק משתמש אחרים כשהסמל
Snackbarמופיע. לדוגמה, אם הפריסה כוללתFloatingActionButton, הפריסה מעבירה את הלחצן למעלה כשהיא מציגהSnackbar, במקום לצייר אתSnackbarמעל הלחצן. תמונה 1 מציגה איך זה נראה.
המחלקה CoordinatorLayout מספקת קבוצת-על של הפונקציונליות של FrameLayout.
אם האפליקציה כבר משתמשת ב-FrameLayout, אפשר להחליף את הפריסה הזו ב-CoordinatorLayout כדי להפעיל את כל הפונקציות של Snackbar. אם האפליקציה משתמשת באובייקטים אחרים של פריסה, צריך לעטוף את רכיבי הפריסה הקיימים בתג CoordinatorLayout, כמו בדוגמה הבאה:
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myCoordinatorLayout" 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> </androidx.coordinatorlayout.widget.CoordinatorLayout>
הגדרת תג android:id עבור CoordinatorLayout.
כדי להציג את ההודעה, צריך את מזהה הפריסה.
איור 1. הסמל CoordinatorLayout מעביר את FloatingActionButton למעלה כשהסמל Snackbar מופיע.
הצגת הודעה
יש שני שלבים להצגת הודעה. קודם כול יוצרים אובייקט Snackbar עם הטקסט של ההודעה. לאחר מכן, מפעילים את השיטה show() של האובייקט כדי להציג את ההודעה למשתמש.
יצירת אובייקט של סרגל אינטראקטיבי
יוצרים אובייקט Snackbar על ידי קריאה ל-method הסטטית Snackbar.make(). כשיוצרים את Snackbar, מציינים את ההודעה שתוצג ואת משך הזמן שבו ההודעה תוצג:
val mySnackbar = Snackbar.make(view, stringId, duration)
- צפייה
-
התצוגה שאליה יצורף
Snackbar. השיטה מחפשת בהיררכיית התצוגות מהתצוגה שהועברה עד שהיא מגיעה ל-CoordinatorLayoutאו לתצוגת התוכן של עיצוב החלון. בדרך כלל, פשוט יותר להעביר את התוכן בתוך התגיםCoordinatorLayout. - stringId
- מזהה המשאב של ההודעה שרוצים להציג. זה יכול להיות טקסט עם פורמט או טקסט ללא פורמט.
- משך
-
משך הזמן שבו ההודעה תוצג. הערך יכול להיות
LENGTH_SHORTאוLENGTH_LONG.
הצגת ההודעה למשתמש
אחרי שיוצרים את Snackbar, קוראים לשיטה show() שלו כדי להציג את Snackbar למשתמש:
mySnackbar.show()
המערכת לא מציגה כמה אובייקטים של Snackbar בו-זמנית, ולכן אם מוצג כרגע אובייקט אחר של Snackbar, ה
מערכת מכניסה את האובייקט Snackbar שלכם לתור ומציגה אותו אחרי שהאובייקט הנוכחי של
Snackbar יפוג או ייסגר.
אם רוצים להציג הודעה למשתמש ולא צריך להפעיל אף אחת משיטות השירות של האובייקט Snackbar, לא צריך לשמור את ההפניה אל Snackbar אחרי שמפעילים את show(). לכן, נהוג להשתמש בשרשור של מתודות כדי ליצור ולהציג Snackbar בהצהרה אחת:
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()