2012-08-09 21 views
7

Vì vậy, tôi có các bộ tản nhiệt sau đây. Tôi muốn có chúng hiển thị như thế này:Có bọc RadioButton ngang nếu quá dài cho màn hình

enter image description here

Tuy nhiên điều này xảy ra:

radiogroup problem

Làm thế nào tôi có thể lấy nó để hiển thị như trên?
Tôi có thể di chuyển trong trình soạn thảo GUI trong Eclipse nhưng nó loại bỏ RadioButton khỏi RadioGroup!
Trong nhóm, nó bỏ qua tất cả các thông số bố cục khác.

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

Trả lời

2

Điều bạn đang yêu cầu là FlowLayout. Cách bố trí như vậy có lợi ích khi chỉ gói khi cần thiết, trái ngược với giải pháp "tĩnh" của 0gravity.

+0

Thú vị, là nó có thể sử dụng điều này bên trong một RadioGroup? – TheRealKingK

+0

Tôi tin là không, nhưng có thể sử dụng RadioButton mà không gán chúng cho một nhóm. –

+0

@ TheRealKingK: Nếu bạn sub-class một RadioGroup và thực hiện các hàm onMeasure() và onLayout() tương tự như FlowLayout, bạn sẽ nhận được giải pháp mà bạn đang tìm kiếm. Xem giải pháp của tôi trên trang này. –

4

Bạn chỉ có thể sao chép lớp này:

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

vào một gói phần mềm phù hợp trong dự án của bạn và nhanh chóng trong XML như sau:

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

Trông giống như mã tuyệt vời, nhưng không thực sự thích hợp cho các lề cho RadioButton trong RadioGroup. – welshk91

Các vấn đề liên quan