valor studio sirve que para obtener agrupar activar android radio-button radio-group divider

studio - Grupo de radio de Android, divisor entre botones de radio.



radio button toggle android (4)

Aquí hay una solución:

Primero crea una Forma Dibujable como tu divisor. Aquí hay un ejemplo:

<?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>

Esto es sólo un simple borde negro. Póngalo dentro de su carpeta / dibujable y asígnele un nombre como custom_divider.xml .

Luego, vaya a su diseño que utiliza un Grupo de Radio . Use el ShapeDrawable como fondo para cada uno de los botones de radio. Aquí hay un ejemplo:

<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>

También puede agregar un ShapeDrawable a su Grupo de Radio. Depende de ti, personalízalo si lo necesitas. :)

Aquí está mi ejemplo de un grupo de radio con borde personalizado (con radio de esquina) y divisor personalizado ShapeDrawable (s).

¿Hay una forma sencilla de agregar un divisor entre RadioButtons dentro de un RadioGroup ? He intentado usar el atributo xml divider y no parece estar funcionando. En caso de que sea relevante, el grupo de RadioGroup en mi diseño no contiene ninguna vista secundaria; Estoy agregando los RadioButtons programáticamente.

EDITAR : Problema resuelto. Puede agregar vistas además de RadioButton dentro de RadioGroup en el xml. En mi caso, también puede hacerlo mediante programación, pero tenga cuidado con los parámetros de diseño. Akki tuvo la idea correcta, y esto me funcionó:

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); }


Cree una forma dibujable que represente el divisor (llamado "radio_group_divider"):

<?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>

Use este dibujo como "divisor" en el Grupo de Radio:

<RadioGroup ... android:divider="@drawable/radio_group_divider" android:showDividers="middle" ...> </RadioGroup>


Si crea RadioGroup programáticamente, entonces también tiene que configurar los divisores programáticamente. Puedes hacerlo así:

RadioGroup radioGroup = new RadioGroup(getActivity()); //We create a new radio group radioGroup.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); radioGroup.setDividerDrawable(getResources().getDrawable(android.R.drawable.divider_horizontal_textfield, getActivity().getTheme()));

...

Nota: esta parte del código está trabajando en un fragmento. Entonces, si desea ponerlo en una actividad, debe modificar cambiando "getActivity ()" con "YourActivityName.this"


<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>

Eso funcionará para ti. ¿Y tengo mucha curiosidad sobre cómo agregar la vista en la vista de grupo? Eso debería causar classcastexception, ¿no?