يتيح زر الاختيار للمستخدم تحديد خيار من مجموعة من الخيارات. يمكنك استخدام زر اختيار عندما يكون من الممكن تحديد عنصر واحد فقط من قائمة. إذا كان على المستخدمين اختيار أكثر من عنصر واحد، استخدِم مفتاح تبديل بدلاً من ذلك.
مساحة واجهة برمجة التطبيقات
استخدِم العنصر القابل للإنشاء 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
إلى تحسين إمكانية الوصول. يمنع ذلك زر الاختيار من معالجة حدث النقر مباشرةً، ويتيح للمعدِّلselectable
فيRow
إدارة حالة التحديد وسلوك تسهيل الاستخدام.
- يؤدي النقر على
النتيجة

مراجع إضافية
- Material Design: الأزرار