מתגים ב-Jetpack Compose Glimmer

מכשירי XR שנתמכים
ההנחיות האלה יעזרו לכם ליצור חוויות למכשירי XR מהסוגים הבאים.
משקפיים עם תצוגה

ב-Jetpack Compose Glimmer, ‏ ToggleButton הוא רכיב אינטראקטיבי שמשנה את המראה שלו בהתאם למצב הסימון. המתגים מותאמים למשקפיים עם תצוגה פנימית כדי לספק מעברים חזותיים ברורים בצורה ובצבע. המעברים האלה מציינים מתי פעולה או הגדרה פעילות.

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

יש גם כפתורים רגילים וכפתורי סמלים לתרחישי שימוש אחרים.

איור 1. דוגמה ללחצן דו-מצבי ב-Jetpack Compose Glimmer שמשמש לפעולות הפעלה והשהיה בפריסה של ממשק המשתמש.

אנטומיה

לחצן דו-מצבי מורכב ממאגר שמשנה את הצורה שלו בין מצבים שונים, ומתווית עם סמלים אופציונליים.

חלק תיאור

מאגר

אנימציה של מעבר בין צורה מעגלית (לא מסומנת) לבין מלבן מעוגל (מסומן).

תווית

בדרך כלל מדובר ב-Text composable.

סמלים (אופציונלי)

משבצות שידור שמופיעות לפני או אחרי הפרסומת, והן עשויות להשתנות בהתאם למדינה.

גדלים

בדומה ללחצנים רגילים, לחצני החלפה תומכים בשני גדלים:

גודל גובה מינימלי שימוש ברירת מחדל

בינוני

48.dp

גודל ברירת המחדל של התכונה האינטראקטיבית.

גדול

72.dp

מתגים ראשיים או מודגשים.

ברירות מחדל של מתגים

כברירת מחדל, כפתורי ההפעלה/השבתה משתמשים ב-ToggleButtonDefaults.animateShape. כך נוצר מעבר חלק בין המצבים הבאים:

הסיווג ToggleButtonColors מנהל את רזולוציית הצבע למצבים הבאים:

אנימציה

ההגדרות הבאות מוגדרות כברירת מחדל לאנימציה של מתגים:

  • animateShape: מספק Shape שמבצע אינטרפולציה של גדלי הפינות באמצעות מפרט של אנימציית קפיץ (stiffness = 600f).
  • colors: פונקציית factory להתאמה אישית של צבעי הרקע והתוכן בשני המצבים.
  • CheckedShape: RoundedCornerShape(20.dp) סטטי שמשמש למצב המסומן.
  • contentPadding: עוברת בירושה מ-ButtonDefaults.contentPadding.

דוגמה: מתג

הקוד הבא יוצר לחצן בסיסי למעבר בין מצבים:

@Composable
fun ToggleButtonSample() {
    var checked by remember { mutableStateOf(false) }
    val text = if (checked) "Toggle on" else "Toggle off"

    ToggleButton(
        checked = checked,
        onCheckedChange = { checked = it }
    ) {
        Text(text)
    }
}

דוגמה: לחצן Toggle עם סמל מוביל

הקוד הבא יוצר לחצן מעבר עם סמל מוביל:

@Composable
fun ToggleButtonWithLeadingIconSample() {
    var checked by remember { mutableStateOf(false) }

    ToggleButton(
        checked = checked,
        leadingIcon = {
            Icon(
                if (checked) FavoriteIcon else OutlinedFavoriteIcon,
                contentDescription = "Toggle favorite"
            )
        },
        onCheckedChange = { checked = it }
    ) {
        Text(if (checked) "On" else "Off")
    }
}