Radio
زر اختيار واحد من مجموعة Radio
Radio يتيح اختيار قيمة واحدة فقط من مجموعة خيارات متبادلة الاستبعاد — بالنمط الحديث يُستخدم دائمًا داخل RadioGroup أب يدير الحالة مركزيًا.
بعد إعادة تصميم واجهة Radio، لم يعد كل Radio يحمل groupValue وonChanged بنفسه (أُوقِفا/deprecated) — بدل ذلك تُغلَّف مجموعة الأزرار كاملة بـ RadioGroup واحد يحمل القيمة الحالية ودالة التغيير، وكل Radio بداخله يحمل value فقط.
الصياغة
RadioGroup<T>(
groupValue: T?,
onChanged: (T? value) { },
child: Column(children: [Radio<T>(value: ...), ...]),
)📄 مثال
int selected = 0;
RadioGroup<int>(
groupValue: selected,
onChanged: (value) => setState(() => selected = value!),
child: Column(
children: [
Row(children: [Radio<int>(value: 0), Text('صغير')]),
Row(children: [Radio<int>(value: 1), Text('كبير')]),
],
),
)أهم المعاملات
| المعامل | الوظيفة |
|---|---|
| RadioGroup.groupValue | القيمة المختارة حاليًا بالمجموعة كلّها |
| RadioGroup.onChanged | يُستدعى بالقيمة الجديدة عند اختيار أي Radio بداخله |
| Radio.value | القيمة التي يمثّلها هذا الزر تحديدًا |
| Radio.enabled | تعطيل زر واحد بعينه (بدل تمرير onChanged: null بالنمط القديم) |
💡 نصائح عملية
- استخدم RadioListTile إذا أردت نصًا واضحًا بجانب كل زر بسطر جاهز — نفس فكرة CheckboxListTile
⚠️ أخطاء شائعة
- تمرير groupValue وonChanged مباشرة لكل Radio على الطريقة القديمة — أُوقِفا (deprecated)؛ الطريقة الحالية تلفّ المجموعة بـ RadioGroup واحد
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار FLUTTER الكامل بالعربي.