2012-08-09 6 views
7

그래서 다음과 같은 라디오 버튼이 있습니다. 나는 그들과 같이 표시하고 싶지 :화면에 너무 길면 수평 라디오 버튼을 감습니다.

enter image description here

그러나이 발생

나는 그것이 위와 같이 표시 얻을 수있는 방법

radiogroup problem

?
Eclipse의 GUI 편집기에서 이동할 수 있지만 RadioGroup에서 RadioButton을 제거합니다!
그룹 내에서 다른 모든 레이아웃 매개 변수를 무시합니다.

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

답변

2

당신이 원하는 것은 FlowLayout입니다. 이러한 레이아웃은 0gravity의 "정적"솔루션과 달리 필요한 경우에만 래핑하는 이점이 있습니다. 과 같이 XML에서 프로젝트에 적합한 패키지로

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

및 인스턴스화 :

+0

흥미 것이 가능 내부에이를 사용하는 것입니다 라디오 그룹? – TheRealKingK

+0

믿을 수는 없지만 RadioButton을 그룹에 할당하지 않고 사용할 수는 있습니다. –

+0

@TheRealKingK : RadioGroup을 하위 클래스로 만들고 FlowLayout과 비슷한 onMeasure() 및 onLayout() 함수를 구현하면 원하는 솔루션을 얻을 수 있습니다. 이 페이지에서 내 솔루션을 참조하십시오. –

4

당신은 단순히이 클래스를 복사 할 수 있습니다

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

훌륭한 코드처럼 보이지만 RadioGroup의 RadioButton에 대한 여백을 실제로 수용하지는 않습니다. – welshk91

관련 문제