रेडियो बटन की मदद से, उपयोगकर्ता किसी सेट में से एक विकल्प चुन सकता है. रेडियो बटन का इस्तेमाल तब किया जाता है, जब सूची से सिर्फ़ एक आइटम चुना जा सकता है. अगर उपयोगकर्ताओं को एक से ज़्यादा आइटम चुनने हैं, तो इसके बजाय स्विच का इस्तेमाल करें.
एपीआई का प्लैटफ़ॉर्म
उपलब्ध विकल्पों की सूची बनाने के लिए, RadioButton
कंपोज़ेबल का इस्तेमाल करें. हर RadioButton
विकल्प और उसके लेबल को एक साथ ग्रुप करने के लिए, उन्हें Row
कॉम्पोनेंट में रैप करें.
RadioButton
में ये मुख्य पैरामीटर शामिल हैं:
selected
: इससे पता चलता है कि रेडियो बटन चुना गया है या नहीं.onClick
: रेडियो बटन पर क्लिक करने पर, यह फ़ंक्शन चालू होता है. अगर यह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
से पता चलता है किselectedOption
की स्थिति के आधार पर, मौजूदाRow
चुना गया है या नहीं.onClick
लैम्ब्डा फ़ंक्शन,Row
पर क्लिक करने परselectedOption
स्टेटस को क्लिक किए गए विकल्प पर अपडेट करता है.role = Role.RadioButton
, सुलभता सेवाओं को बताता है किRow
रेडियो बटन के तौर पर काम करता है.
RadioButton(...)
,RadioButton
कॉम्पोज़ेबल बनाता है.RadioButton
परonClick = null
, सुलभता को बेहतर बनाता है. इससे रेडियो बटन, क्लिक इवेंट को सीधे मैनेज नहीं कर पाता. साथ ही,Row
केselectable
मॉडिफ़ायर को, चुने जाने की स्थिति और ऐक्सेसिबिलिटी व्यवहार को मैनेज करने की अनुमति मिलती है.
नतीजा
अन्य संसाधन
- Material Design: बटन