2012-05-22 11 views
16

RadioButtons के बीच RadioGroup के अंदर विभाजक जोड़ने का कोई आसान तरीका है? मैंने divider xml विशेषता का उपयोग करने का प्रयास किया है और ऐसा लगता है कि यह काम नहीं कर रहा है। यदि यह प्रासंगिक है, तो मेरे लेआउट में RadioGroup में कोई भी बच्चा विचार नहीं है; मैं RadioButtons प्रोग्रामेटिक रूप से जोड़ रहा हूं।एंड्रॉइड रेडियोग्रुप, रेडियोबुटन्स के बीच विभाजक

EDIT: समस्या हल हो गई। आप x12 में RadioGroup के अंदर RadioButton के अलावा दृश्य जोड़ सकते हैं। मेरे मामले में, आप इसे प्रोग्रामेटिक रूप से भी कर सकते हैं, लेकिन अपने लेआउट पैराम्स के बारे में सावधान रहें। अक्की सही विचार था, और यह मेरे लिए काम किया:

पहले एक आकार Drawable अपने भाजक के रूप में बनाने के लिए:

for (int i = 0; i < items.size(); i++) { 
    if (i > 0) { 
     // add a divider with height of 1 pixel 
     View v = new View(this); 
     v.setLayoutParams(new RadioGroup.LayoutParams(LayoutParams.MATCH_PARENT, 1)); 
     v.setBackgroundColor(android.R.color.darker_gray); 
     mRadioGroup.addView(v); 
    } 
    RadioButton rb = new RadioButton(this); 
    /* set other properties ... */ 

    mRadioGroup.addView(rb); 
} 
+0

यदि आप जो भी करने की कोशिश कर रहे हैं उसकी एक छवि प्रदान कर सकते हैं तो यह सहायक हो सकता है। – mtmurdock

+4

रेडियो समूह रैखिक लेआउट से लिया गया है इसलिए एक दृश्य वस्तु बनाएं और इसे अंतिम रेडियो को छोड़कर प्रत्येक रेडियो बटन के बाद जोड़ें। – Akram

+0

mtmurdock: मुझे बस प्रत्येक आइटम के बीच एक पतली क्षैतिज रेखा की आवश्यकता है। अक्की: मैंने इसके बारे में सोचा, लेकिन उम्मीद कर रहा था कि कुछ आसान था। ऐसा लगता है कि इस तरह के एक स्पष्ट स्पष्ट मामले की तरह है कि कोई उम्मीद करेगा कि Google ने ढांचे के भीतर इसके लिए प्रावधान किए होंगे। – Karakuri

उत्तर

13

यहाँ एक समाधान है। यहां एक उदाहरण दिया गया है:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 
<solid 
    android:color="@color/white" /> 
<stroke 
    android:width="0.3dp" 
    android:color="@color/black" /> 
</shape> 

यह सिर्फ एक साधारण काला सीमा है। इसे अपने खींचने योग्य/फ़ोल्डर के अंदर रखें और इसे custom_divider.xml जैसे कुछ नाम दें।

फिर, अपने लेआउट पर जाएं जो रेडियोग्रुप का उपयोग करता है। प्रत्येक रेडियोबटन (ओं) के लिए पृष्ठभूमि के रूप में आकार के आकार का उपयोग करें। यहां एक उदाहरण दिया गया है:

<RadioGroup 
     android:id="@+id/radioGroup1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:divider="@color/black" > 

     <RadioButton 
      android:id="@+id/radio0" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/custom_radiogroup_divider" 
      android:checked="true" 
      android:text="RadioButton" /> 

     <RadioButton 
      android:id="@+id/radio1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/custom_radiogroup_divider" 
      android:text="RadioButton" /> 

     <RadioButton 
      android:id="@+id/radio2" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/custom_radiogroup_divider" 
      android:text="RadioButton" /> 

    </RadioGroup> 

आप अपने रेडियो समूह में एक आकार बदलने योग्य भी जोड़ सकते हैं। यह आपके ऊपर निर्भर करता है, यदि आपको आवश्यकता हो तो इसे अनुकूलित करें। :)

कस्टम सीमा (कोने त्रिज्या के साथ) और कस्टम विभक्त आकार के साथ रेडियो समूह का मेरा उदाहरण यहां दिया गया है। RadioGroup divider

6

आकार drawable कि विभक्त का प्रतिनिधित्व करता है बनाएँ (बुलाया "radio_group_divider"): "विभक्त" RadioGroup में के रूप में इस drawable

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <size android:width="12dp" /> 
    <solid android:color="@color/transparent" /> 
</shape> 

उपयोग:

<RadioGroup 
     ... 
     android:divider="@drawable/radio_group_divider" 
     android:showDividers="middle" 
     ...> 
</RadioGroup> 
14
<RadioGroup 
    android:id="@+id/location_radio_group" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:divider="?android:attr/dividerHorizontal" 
    android:showDividers="middle"> 
</RadioGroup> 

यही काम करेंगे तुम्हारे लिए। और मैं वास्तव में उत्सुक हूं कि आप समूह दृश्य में दृश्य कैसे जोड़ते हैं? क्लासकास्टेसेप्शन का कारण बनना चाहिए, नहीं?

संबंधित मुद्दे