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

רוצה לנסות את שיטת הכתיבה?
'Jetpack פיתוח נייטיב' היא ערכת הכלים המומלצת לממשק המשתמש ל-Android. איך מוסיפים התראות במצב 'כתיבה'

אפשר להשתמש Snackbar עד הצגת הודעה קצרה למשתמש. ביטול הלייק התראות, ההודעה נעלמת באופן אוטומטי לאחר פרק זמן קצר. Snackbar הוא אידיאלי להודעות קצרות שהמשתמש לא צריך לבצע לגביהן פעולה. לדוגמה, אפליקציית האימייל יכולה להשתמש ב-Snackbar כדי להודיע למשתמש שהיא נשלח אימייל בהצלחה.

שימוש בפריסת Coordinator

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

כדי ליצור אובייקט Snackbar מפעילים את הפונקציה הסטטית Snackbar.make() . כשיוצרים את Snackbar, צריך לציין את ההודעה ואת משך הזמן להצגת ההודעה:

Kotlin

val mySnackbar = Snackbar.make(view, stringId, duration)

Java

Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
תצוגה
התצוגה שאליה צריך לצרף את Snackbar. השיטה מחפשת היררכיית התצוגות מהתצוגה שהועברה עד שהיא מגיעה CoordinatorLayout או תצוגת התוכן של עיצוב החלון. בדרך כלל, פשוט יותר להעביר את CoordinatorLayout צירוף התוכן שלך.
מזהה מחרוזת
מזהה המשאב של ההודעה שרוצים להציג. אפשר לפרמט או טקסט לא מעוצב.
משך
משך הזמן עד שההודעה תוצג. סוג הפריט יכול להיות LENGTH_SHORT או LENGTH_LONG.

הצגת ההודעה למשתמש

אחרי שיוצרים את Snackbar, צריך לקרוא ל-show() שיטה להצגת Snackbar למשתמש:

Kotlin

mySnackbar.show()

Java

mySnackbar.show();

המערכת לא מציגה מספר אובייקטים של Snackbar בו-זמנית לכן, אם התצוגה מציגה כרגע Snackbar אחר, המערכת תוסיף את Snackbar לתור ותציג אותו אחרי האפליקציה Snackbar בתוקף או נסגרת.

אם אתם רוצים להציג הודעה למשתמש ואין צורך להתקשר לאף אחת שיטות השירות (method) של האובייקט 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();