ב-Jetpack Compose Glimmer, ToggleButton הוא רכיב אינטראקטיבי שמשנה את המראה שלו בהתאם למצב הסימון. המתגים מותאמים למשקפיים עם תצוגה כדי לספק מעברים חזותיים ברורים בצורה ובצבע. המעברים האלה מציינים מתי פעולה או הגדרה פעילות.
משתמשים בלחצני מעבר כדי לחשוף פעולות שאפשר להפעיל או להשבית. בניגוד ללחצני מעבר עם סמלים בלבד, לחצן מעבר מציג בעיקר תוכן טקסטואלי, אבל הוא תומך גם במשבצות סמלים אופציונליות להוספת הקשר.
יש גם כפתורים רגילים וכפתורי סמלים לתרחישי שימוש אחרים.
אנטומיה
לחצן מתג מורכב ממאגר שמשנה צורה בין מצבים ומתווית עם סמלים אופציונליים.
| חלק | תיאור |
|---|---|
מאגר |
אנימציה של מעבר בין צורה עגולה (לא מסומן) לבין מלבן מעוגל (מסומן). |
תווית |
בדרך כלל מדובר ב- |
סמלים (אופציונלי) |
משבצות שידור ראשונות או אחרונות שיכולות להשתנות בהתאם למדינה. |
גדלים
בדומה ללחצנים רגילים, לחצני החלפה תומכים בשני גדלים:
| גודל | גובה מינימלי | שימוש ברירת מחדל |
|---|---|---|
בינוני |
48.dp |
גודל ברירת המחדל של התכונה האינטראקטיבית. |
גדול |
72.dp |
מתגים ראשיים או מודגשים. |
ברירות מחדל של מתגים
כברירת מחדל, לחצני החלפה משתמשים ב-ToggleButtonDefaults.animateShape. כך נוצר מעבר חלק בין המצבים הבאים:
- לא מסומן:
GlimmerTheme.shapes.large(בדרך כללCircleShape). - מסומן:
ToggleButtonDefaults.CheckedShape(RoundedCornerShapeעם20.dpפינות).
הסיווג צריך להיות מוגדר אוטומטית למצב הבא:ToggleButtonColors
- לא מסומן: ברירת המחדל היא
GlimmerTheme.colors.surface. - מסומן: ברירת המחדל היא
GlimmerTheme.colors.surface.
אנימציה
ההגדרות הבאות מוגדרות כברירת מחדל לאנימציה של מתגים:
-
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) } }