선형 레이아웃

LinearLayout은 세로 또는 가로의 단일 방향으로 모든 하위 항목을 정렬하는 뷰 그룹입니다. android:orientation 특성을 사용하여 레이아웃 방향을 지정할 수 있습니다.

LinearLayout의 모든 하위 항목은 순차적으로 스택되므로, 세로 목록의 경우 너비에 상관없이 한 행당 하나의 하위 항목만 있게 되며, 가로 목록의 경우 높이가 한 행 높이입니다(가장 큰 하위 항목의 높이 + 패딩). LinearLayout은 하위 항목 사이의 여백 및 각 하위 항목의 중력(오른쪽, 가운데, 왼쪽 정렬)을 유지합니다.

레이아웃 가중치

LinearLayoutandroid:layout_weight 특성을 사용하여 가중치를 개별 하위 항목에 할당하는 것도 지원합니다. 이 특성은 뷰가 화면에서 얼마나 많은 공간을 차지해야 하는지와 관련하여 뷰에 '중요한' 값을 할당합니다. 큰 가중치 값을 사용하면 상위 뷰에서 남은 공간을 모두 채우도록 확장될 수 있습니다. 하위 뷰는 가중치 값을 지정할 수 있으며, 그러면 뷰 그룹에서 남은 모든 공간이 선언된 가중치 비율에 따라 하위 항목에 할당됩니다. 기본 가중치는 0입니다.

예를 들어, 세 개의 텍스트 필드가 있는데 그중 두 개가 가중치를 1로 선언하고 다른 하나에는 가중치가 지정되지 않은 경우 가중치가 지정되지 않은 세 번째 텍스트 필드는 확장되지 않고 해당 콘텐츠에 필요한 영역만 차지합니다. 다른 두 텍스트 필드는 세 필드가 모두 측정된 후 남은 공간을 균등하게 채우도록 확장됩니다. 세 번째 필드에 가중치가 2(0 대신)로 지정되면 다른 두 필드보다 더 중요한 것으로 선언된 것입니다. 따라서 전체 남은 공간 중 절반을 차지하며, 처음 두 개 필드가 나머지를 균등하게 나눠 갖습니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:orientation="vertical" >
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/to" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/subject" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="top"
        android:hint="@string/message" />
    <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="@string/send" />
</LinearLayout>

LinearLayout의 각 하위 뷰에 사용할 수 있는 특성에 대한 자세한 내용은 LinearLayout.LayoutParams를 참조하세요.