לחצן בחירה מאפשר למשתמש לבחור אפשרות מתוך קבוצת אפשרויות. משתמשים בלחצן בחירה כשרוצים לאפשר בחירה של פריט אחד בלבד מתוך רשימה. אם המשתמשים צריכים לבחור יותר מפריט אחד, צריך להשתמש במקום זאת במתג.
משטח API
כדי להציג את האפשרויות הזמינות, משתמשים בקומפוזבל 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
'sselectable
לנהל את מצב הבחירה ואת התנהגות הנגישות.
-
התוצאה

מקורות מידע נוספים
- Material Design: Buttons