2012-08-09 11 views
7

Mam zatem następujące radiobuttony. Chcę, aby je wyświetlić tak:Zwijanie poziomych przycisków RadioButtons, jeśli ekran jest zbyt długi dla ekranu

enter image description here

jednak to nastąpi:

radiogroup problem

Jak mogę zmusić go do wyświetlania jak powyżej?
Mogę przenieść w edytorze GUI w Eclipse to, ale usuwa RadioButton z RadioGroup!
W grupie ignoruje wszystkie inne parametry układu.

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

Odpowiedz

2

To, o co prosisz, to FlowLayout. Taki układ ma tę zaletę, że zawija się tylko wtedy, gdy jest potrzebny, w przeciwieństwie do bardziej "statycznego" rozwiązania 0gravity.

+0

Ciekawe, czy to możliwe, aby skorzystać z tej Wewnątrz RadioGroup? – TheRealKingK

+0

Uważam, że tak nie jest, ale możliwe jest użycie RadioButtons bez przypisywania ich do grupy. –

+0

@TheRealKingK: Jeśli podklasuje się RadioGroup i wdraża funkcje onMeasure() i onLayout() podobnie jak FlowLayout, otrzymacie rozwiązanie, którego szukacie. Zobacz moje rozwiązanie na tej stronie. –

4

można po prostu skopiować tę klasę:

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

do odpowiedniego pakietu w projekcie i wystąpienia w XML tak:

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

Wygląda jak świetny kod, ale tak naprawdę nie uwzględnia marginesów dla RadioButtons w RadioGroup. – welshk91

Powiązane problemy