2012-08-09 11 views
7

Así que tengo los siguientes botones de radio. Quiero tener ellos muestran así:Haga que los botones de radio horizontales se envuelvan si es demasiado largo para la pantalla

enter image description here

Sin embargo esto ocurre:

radiogroup problem

¿Cómo puedo conseguir que se muestre como el anterior?
¡Puedo moverlo en el editor de GUI en Eclipse, pero elimina el RadioButton del RadioGroup!
Dentro del grupo, ignora todos los demás parámetros de diseño.

<RadioGroup 
    android:id="@+id/radioGroup1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/timeBar" 
    android:layout_marginTop="43dp" 
    android:orientation="horizontal" > 

    <RadioButton 
     android:id="@+id/privRadio0" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Everyone" /> 

    <RadioButton 
    android:id="@+id/privRadio1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:checked="true" 
    android:text="FriendOfFriends" /> 


<RadioButton 
    android:id="@+id/privRadio2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Friends" /> 
</RadioGroup> 

Respuesta

2

Lo que estás pidiendo es un FlowLayout. Tal diseño tiene el beneficio de solo envolverse cuando es necesario, a diferencia de la solución más "estática" de 0gravity.

+0

Interesante, es posible el uso de esto dentro de una RadioGroup? – TheRealKingK

+0

Creo que no es así, pero es posible usar RadioButtons sin asignarlos a un grupo. –

+0

@TheRealKingK: Si subclase un RadioGroup e implementa las funciones onMeasure() y onLayout() de manera similar a FlowLayout, obtendrá la solución que está buscando. Ver mi solución en esta página. –

4

simplemente Puede copiar esta clase:

https://github.com/jevonbeck/AbstractMachine/blob/jevon_dev/app/src/main/java/org/ricts/abstractmachine/ui/utils/MultiLineRadioGroup.java

en un paquete apropiado en su proyecto y crear una instancia en XML, así:

<view 
    class="mypackage.packagepath.MultiLineRadioGroup" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"/> 
+0

Parece un gran código, pero realmente no acomoda los márgenes para los RadioButtons en el RadioGroup. – welshk91

Cuestiones relacionadas