יצירה והצגה של הודעה קופצת

אפשר לנסות את הדרך של כתיבת הודעה
‫Jetpack Compose היא ערכת הכלים המומלצת לבניית ממשק משתמש ב-Android. איך מוסיפים התראות בכתיבת הודעה

אתם יכולים להשתמש ב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();