2012-08-09 6 views
7

Quindi ho i seguenti pulsanti di scelta. Voglio avere loro visualizzare in questo modo:Avere i RadioButton orizzontali avvolgere se troppo lunghi per lo schermo

enter image description here

Tuttavia ciò si verifica:

radiogroup problem

Come posso convincerlo per visualizzare come sopra?
Posso spostarmi nell'editor GUI in Eclipse ma rimuove il RadioButton dal RadioGroup!
All'interno del gruppo, ignora tutti gli altri parametri di layout.

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

risposta

2

Quello che stai chiedendo è un FlowLayout. Tale layout ha il vantaggio di avvolgere solo quando è necessario, al contrario della soluzione più "statica" di 0gravity.

+0

interessante, è possibile l'utilizzo di questo all'interno di un RadioGroup? – TheRealKingK

+0

Credo che non lo sia, ma è possibile utilizzare i RadioButton senza assegnarli a un gruppo. –

+0

@TheRealKingK: se si sottoclassifica un Gruppo Radio e si implementano le funzioni onMeasure() e onLayout() in modo simile a FlowLayout, si otterrà la soluzione che si sta cercando. Vedi la mia soluzione su questa pagina. –

4

Si può semplicemente copiare questa classe:

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

in un pacchetto adeguato nel progetto e creare un'istanza in XML in questo modo:

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

Sembra un grande codice, ma in realtà non accetta margini per i RadioButton nel Gruppo Radio. – welshk91

Problemi correlati