מתגים ב-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) }
}

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

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

@Composable
fun ToggleButtonWithLeadingIconSample() {
    var checked by remember { mutableStateOf(false) }
    val text = if (checked) "Toggle on" else "Toggle off"
    ToggleButton(
        checked = checked,
        leadingIcon = {
            Icon(if (checked) FavoriteIcon else OutlinedFavoriteIcon, "Localized description")
        },
        onCheckedChange = { checked = it },
    ) {
        Text(text)
    }
}