본문 바로가기
개발(Development)/Android(안드로이드)

[안드로이드] RadioGroup의 RadioButton 가운데/비율 정렬 배치 방법

by 카레유 2021. 7. 20.

RadioGroup 내에서 Radio버튼을 정렬하는 다양한 방법을 정리한다.

 

기본적으로 RadioGroup은 LinearLayout 이라고 보고 배치하면 된다.

아래 코드는 모두 레아아웃XML 파일에 정의하는 내용이다.

 

RadioGroup의 layout_width 속성값을 match_parent나 고정값을 주고 시작해야 한다.

(wrap_content인 경우 원하는대로 배치가 잘 되지 않을 가능성이 있다)


1. RadioButton 수직 배치 방법(디폴트)

RadioGroup의 orientation속성을 vertical로 주면 RadioGroup 내에서 수직으로 배치된다.

디폴트이기 때문에 따로 설정하지 않아도 수직으로 정렬된다. 

 

 android:orientation="vertical

 


2. RadioButton 수평 배치 방법

RadioGroup의 orientation속성을 horizontal로 주면 RadioGroup 내에서 수평으로 배치된다.

 

 android:orientation="horizontal

 


3. RadioButton 여러개 가운데 정렬 방법

RadioGroup의 gravity 속성을 center로 설정해주면, RadioGroup 내에서 가운데 정렬 된다.

 

 android:gravity="center

 

<RadioGroup
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center" >

    <RadioButton
        android:id="@+id/radioButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="첫번째" />

    <RadioButton
        android:id="@+id/radioButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="두번째" />

    <RadioButton
        android:id="@+id/radioButton3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="세번째" />
</RadioGroup>

 


4. RadioButton 여러개 비율(weight:가중치)대로 정렬하는 방법

RadioButton 각각에 layout_weight 속성을 추가해주면, 부모(RadioGroup)영역을 채우면서 비율별로 배치된다.

(각 RadioButton의 layout_width 속성을 0dp로 설정해주는 것이 권장된다.)

 

 android:layout_weight = "숫자

 

<RadioGroup
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/radioButton"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="첫번째" />

    <RadioButton
        android:id="@+id/radioButton2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:text="두번째" />

    <RadioButton
        android:id="@+id/radioButton3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="6"
        android:text="세번째" />
</RadioGroup>

 


5. RadioButton 여러개를 동일한 비율로  배치하는 방법

각 RadioButton의 layout_weight 속성을 모두 1로 주면 된다.

 

 android:layout_weight = "1

 

<RadioGroup
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/radioButton"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="첫번째" />

    <RadioButton
        android:id="@+id/radioButton2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="두번째" />

    <RadioButton
        android:id="@+id/radioButton3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="세번째" />
</RadioGroup>

 


상황에 맞게 RadioGroup에 적절한 margin 등을 설정하여 마무리하면 된다.

 

참고로 RadioGroup의 layout_width 속성이 wrap_content 라면 잘 작동하지 않을 것이다.

 match_parent로 주거나 고정값을 주면 잘 작동할 것이다.

 

 

댓글