כן, לעבור למכשיר הזה

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

  • מפעילים או משביתים את ההגדרה.
  • מפעילים או משביתים תכונה.
  • בוחרים באחת מהאפשרויות.

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

דוגמאות לרכיב Switch במצב בהיר ובמצב כהה.
איור 1. רכיב המתג.

הטמעה בסיסית

הגדרה מלאה של ה-API מופיעה בהפניה Switch. אלה כמה מהפרמטרים העיקריים שבהם תצטרכו להשתמש:

  • checked: המצב ההתחלתי של המתג.
  • onCheckedChange: קריאה חוזרת שמופעלת כשהמצב של המתג משתנה.
  • enabled: מצב המתג (מופעל או מושבת).
  • colors: הצבעים שמשמשים למתג.

הדוגמה הבאה היא הטמעה מינימלית של הקומפוזיציה Switch.

@Composable
fun SwitchMinimalExample() {
    var checked by remember { mutableStateOf(true) }

    Switch(
        checked = checked,
        onCheckedChange = {
            checked = it
        }
    )
}

היישום הזה נראה כך כשתיבת הסימון לא מסומנת:

מתג בסיסי לא מסומן.
איור 2. מתג לא מסומן.

כך זה נראה כשהתיבה מסומנת:

מתג בסיסי שמסומן.
איור 3. מתג עם סימן וי.

הטמעה מתקדמת

הפרמטרים העיקריים שכדאי להשתמש בהם כשמטמיעים מתג מתקדם יותר הם:

  • thumbContent: משתמשים בזה כדי להתאים אישית את המראה של האגודל כשהוא מסומן.
  • colors: משתמשים באפשרות הזו כדי להתאים אישית את הצבע של הטראק והאגודל.

תמונה ממוזערת מותאמת אישית

אפשר להעביר כל קומפוזיציה לפרמטר thumbContent כדי ליצור תמונה ממוזערת בהתאמה אישית. הדוגמה הבאה היא של מתג שמשתמש בסמל מותאם אישית עבור הרכיב הנע:

@Composable
fun SwitchWithIconExample() {
    var checked by remember { mutableStateOf(true) }

    Switch(
        checked = checked,
        onCheckedChange = {
            checked = it
        },
        thumbContent = if (checked) {
            {
                Icon(
                    imageVector = Icons.Filled.Check,
                    contentDescription = null,
                    modifier = Modifier.size(SwitchDefaults.IconSize),
                )
            }
        } else {
            null
        }
    )
}

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

מתג שמשתמש בפרמטר thumbContent כדי להציג סמל מותאם אישית כשהוא מסומן.
איור 4. מתג עם סמל מותאם אישית של סימון.

צבעים מותאמים אישית

בדוגמה הבאה אפשר לראות איך משתמשים בפרמטר colors כדי לשנות את הצבע של המוט והפס של המתג, בהתאם למצב המתג (מופעל או מושבת).

@Composable
fun SwitchWithCustomColors() {
    var checked by remember { mutableStateOf(true) }

    Switch(
        checked = checked,
        onCheckedChange = {
            checked = it
        },
        colors = SwitchDefaults.colors(
            checkedThumbColor = MaterialTheme.colorScheme.primary,
            checkedTrackColor = MaterialTheme.colorScheme.primaryContainer,
            uncheckedThumbColor = MaterialTheme.colorScheme.secondary,
            uncheckedTrackColor = MaterialTheme.colorScheme.secondaryContainer,
        )
    )
}

ההטמעה הזו נראית כך:

מתג שמשתמש בפרמטר colors כדי להציג מתג עם צבעים מותאמים אישית גם לחלק הנע וגם למסילה.
איור 5. מתג עם צבעים בהתאמה אישית.

מקורות מידע נוספים