כפתור בחירה מאפשר למשתמש לבחור אפשרות מתוך קבוצה של אפשרויות. משתמשים בכפתור בחירה כשרוצים לאפשר בחירה של פריט אחד בלבד מתוך רשימה. אם המשתמשים צריכים לבחור יותר מפריט אחד, השתמשו במתג.
פלטפורמת ה-API
משתמשים ב-composable RadioButton כדי להציג את האפשרויות הזמינות. כדי לקבץ את האפשרויות, צריך להוסיף לכל אפשרות של RadioButton והתווית שלה רכיב Row.
RadioButton כולל את הפרמטרים העיקריים הבאים:
selected: מציין אם כפתור הבחירה מסומן.-
onClick: פונקציית lambda שהאפליקציה מפעילה כשהמשתמש לוחץ על כפתור הבחירה. אם הערך הואnull, המשתמש לא יכול לקיים אינטראקציה ישירה עם כפתור הבחירה. -
enabled: קובע אם כפתור הבחירה מופעל או מושבת. המשתמשים לא יכולים לבצע פעולות בכפתורי בחירה מושבתים. -
interactionSource: מאפשר לראות את מצב האינטראקציה של הכפתור, למשל אם לחצו עליו, העבירו מעליו את העכבר או התמקדו בו.
יצירת כפתור בחירה בסיסי
קטע הקוד הבא מציג רשימה של כפתורי בחירה בתוך Column:
@Composable fun RadioButtonSingleSelection(modifier: Modifier = Modifier) { val radioOptions = listOf("Calls", "Missed", "Friends") val (selectedOption, onOptionSelected) = remember { mutableStateOf(radioOptions[0]) } // Note that Modifier.selectableGroup() is essential to ensure correct accessibility behavior Column(modifier.selectableGroup()) { radioOptions.forEach { text -> Row( Modifier .fillMaxWidth() .height(56.dp) .selectable( selected = (text == selectedOption), onClick = { onOptionSelected(text) }, role = Role.RadioButton ) .padding(horizontal = 16.dp), verticalAlignment = Alignment.CenterVertically ) { RadioButton( selected = (text == selectedOption), onClick = null // null recommended for accessibility with screen readers ) Text( text = text, style = MaterialTheme.typography.bodyLarge, modifier = Modifier.padding(start = 16.dp) ) } } } }
מידע חשוב על הקוד
-
radioOptionsמייצג את התוויות של כפתורי הבחירה. - הפונקציה הקומפוזבילית
rememberיוצרת משתנה מצבselectedOptionופונקציה לעדכון המצב הזה שנקראתonOptionSelected. המצב הזה מכיל את האפשרות שנבחרה בכפתור הבחירה.-
mutableStateOf(radioOptions[0])מאתחל את המצב לפריט הראשון ברשימה. "שיחות" הוא הפריט הראשון, ולכן כפתור הבחירה שלו מסומן כברירת מחדל.
-
Modifier.selectableGroup()מבטיח התנהגות נגישות תקינה לקוראי מסך. הוא מודיע למערכת שהרכיבים בתוך ה-Columnהזה הם חלק מקבוצה שניתן לבחור, מה שמאפשר תמיכה תקינה בקורא מסך.Modifier.selectable()גורם לכל ה-Rowלפעול כפריט אחד שניתן לבחירה.- השדה
selectedמציין אם הערך הנוכחי שלRowנבחר על סמך המצב שלselectedOption. - פונקציית ה-lambda של
onClickמעדכנת את המצב שלselectedOptionלאפשרות שנבחרה כשלוחצים עלRow. role = Role.RadioButtonמודיע לשירותי הנגישות שהרכיבRowמתפקד ככפתור בחירה.
- השדה
-
RadioButton(...)יוצר את הרכיב הקומפוזביליRadioButton.-
onClick = nullב-RadioButtonמשפר את הנגישות. כך כפתור הבחירה לא מטפל באירוע מסוג קליק באופן ישיר, והמשתנה שלRow,selectable, יכול לנהל את מצב הבחירה ואת התנהגות הנגישות.
-
תוצאה
מקורות מידע נוספים
- Material Design: כפתורים