IT recording...

[Android] layout_weight 사용하여 정렬하기 본문

Android

[Android] layout_weight 사용하여 정렬하기

I-one 2020. 8. 16. 14:13

안드로이드 스튜디오를 처음 사용하고 레이아웃 정렬하는 일이 쉽지 않았다. 

 

xml 파일에서 code를 작성하여 아이템들을 정렬하는 데 layout_weight 를 사용하면 편하다는 것을 알게 되어 글을 작성한다.

 

layout_weight는 부모의 width 또는 height자식들이 비율에 따라 나누어 가지는 것을 말한다. 

 

사용법

1. 자식의 width / height 중 비율로 나누어 가질 애를 0dp 로 설정한다.

2. 자식에 android:layout_weight="여기 비율 넣기"로 비율 설정하면 끝이다. 

 

아 부모의 width height는 그냥 주고 싶은 만큼으로 설정하면 된다. weight는 넣을 필요 없고

match하고싶으면 하고 50dp주고싶으면 주고 마음대로

 

예를 들어) 모든 자식의 weight를 android:layout_weight="1" 로 설정했다면 다 같은 비율을 가질 것이고 

               한 자식을 "2"로 했다면 얘는 더 큰 비율을 가질 것이다. 

 

코드를 통해 확인해보자

weight를 적용 한 모습

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_height="60dp"
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:padding="10dp"
    android:background="@drawable/round_style"
    >

    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="0.2"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <TextView
            android:id="@+id/textView_empty"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:text="남은 자리 수"
            android:textStyle="bold"
            android:gravity="center"
            android:paddingBottom="5dp"
            android:textSize="16sp"/>
        <TextView
            android:id="@+id/textView_current"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="0.7"
            android:text="현재자리/전체"
            android:textSize="11sp"
            android:gravity="center"/>

    </LinearLayout>



    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_marginLeft="3dp"
        android:background="@drawable/left_stroke">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1">
            <TextView
                android:id="@+id/textView_name"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="과목이름"

                android:gravity="center"
                android:textSize="13sp"
                />
            <TextView
                android:id="@+id/textView_professor"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/left_stroke"
                android:text="교수님"
                android:textSize="11sp"
                android:gravity="center"
                />

        </LinearLayout>
        <TextView
            android:id="@+id/textView_time"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:text="시간"
            android:paddingTop="3.5dp"
            android:gravity="center"
            android:textSize="11sp"
            />


    </LinearLayout>

    <TextView
        android:id="@+id/textView_number"
        android:layout_width="0dp"
        android:layout_weight="0.2"
        android:layout_height="match_parent"
        android:paddingLeft="3dp"
        android:text="과목번호"
        android:gravity="center"
        android:background="@drawable/left_stroke"/>

</LinearLayout>
Comments