אפשר להשתמש בתג כדי להציג רכיב ויזואלי קטן שמציין סטטוס או ערך מספרי ברכיב אחר שאפשר להרכיב. הנה כמה תרחישים נפוצים שבהם כדאי להשתמש בתג:
- התראות: הצגת מספר ההתראות שלא נקראו בסמל של אפליקציה או בסמל של פעמון ההתראות.
- הודעות: מציינות הודעות חדשות או הודעות שלא נקראו באפליקציית צ'אט.
- עדכוני סטטוס: הצגת הסטטוס של משימה, כמו 'הושלמה', 'בתהליך' או 'נכשלה'.
- כמות בעגלת הקניות: הצגת מספר הפריטים בעגלת הקניות של המשתמש.
- תוכן חדש: הדגשת תוכן או תכונות חדשים שזמינים למשתמש.
משטח API
אפשר להשתמש ב-composable BadgedBox כדי להטמיע תגים באפליקציה. בסופו של דבר, מדובר במאגר. אתם קובעים את המראה שלו באמצעות שני הפרמטרים העיקריים האלה:
-
content: התוכן המורכב שהמאפייןBadgedBoxמכיל. בדרך כללIcon. -
badge: רכיב ה-Composable שמופיע כתווית מעל התוכן. בדרך כלל, הקומפוזיציה הייעודיתBadge.
דוגמה בסיסית
בקטע הקוד הזה מוצגת הטמעה בסיסית של BadgedBox:
@Composable fun BadgeExample() { BadgedBox( badge = { Badge() } ) { Icon( imageVector = Icons.Filled.Mail, contentDescription = "Email" ) } }
בדוגמה הזו מוצג תג שחופף לקומפוזבל Icon שסופק. כמה נקודות חשובות לגבי הקוד:
-
BadgedBoxמשמש כמאגר הכולל. - הארגומנט של הפרמטר
badgeבפונקציהBadgedBoxהואBadge. מכיוון של-Badgeאין ארגומנטים משלה, האפליקציה מציגה את התג ברירת המחדל, שהוא עיגול אדום קטן. -
Iconמשמש כארגומנט לפרמטרcontentשלBadgedBox. זה הסמל שמעליו מופיע התג. במקרה הזה, זהו סמל של אימייל.
כך זה נראה:
דוגמה מפורטת
בדוגמה הבאה אפשר לראות איך להציג ערכים בתג שמשתנים בהתאם לפעולות של המשתמש.
@Composable fun BadgeInteractiveExample() { var itemCount by remember { mutableIntStateOf(0) } Column( verticalArrangement = Arrangement.spacedBy(16.dp) ) { BadgedBox( badge = { if (itemCount > 0) { Badge( containerColor = Color.Red, contentColor = Color.White ) { Text("$itemCount") } } } ) { Icon( imageVector = Icons.Filled.ShoppingCart, contentDescription = "Shopping cart", ) } Button(onClick = { itemCount++ }) { Text("Add item") } } }
בדוגמה הזו מוטמע סמל של עגלת קניות עם תג שמציג את מספר הפריטים בעגלת הקניות של המשתמש.
- הסמל
BadgedBoxמוצג רק אם מספר הפריטים גדול מ-0. - הארגומנטים של
containerColorו-contentColorקובעים את המראה של התג. - רכיב ה-
Textcomposable של משבצת התוכןBadgeמופיע בתוך התג. במקרה הזה, מוצג מספר הפריטים בעגלת הקניות.
ההטמעה הזו נראית כך: