ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1.[Android]LinearLayout (orientation / gravity)
    Android 2019. 8. 3. 22:00
    반응형

    LinearLayout은 뷰를 단일 열에 가로로 정렬하거나 한 행에 세로로 정렬하는 레이아웃입니다.

    orientation 속성으로 속성 값을 정해주지 않을 경우 기본 속성이 horizontal로 설정되어있습니다.

    주로 설정 화면이나 회원가입 화면 같이 정렬을 해서 만들어야 하는 UI에 주로 사용됩니다.

     

    • orientation

    orientation 속성은 자기 아래에 있는 View들이 나열되는 방향을 지정하는 속성입니다.

     android:orientation="horizontal" < 단일 열에 가로로 정렬 >

     android:orientation="vertical" < 한 행에 세로로 정렬 >

    vertical / horizontal

     

    • gravity

    gravity는 두 가지가 있습니다.

     layout_gravity : 자기 자신이 포함된 부모 레이아웃에서 값에 따라 정렬됩니다.

                               앞에 layout이 붙으면 부모 레이아웃과 연관이 된다 생각하면 쉽습니다.

     gravity : 앞에 layout이 안 붙어 있기 때문에 자기 뷰안에 있는 값을 정렬합니다.

    <?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:orientation="horizontal">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#bbb"
            >
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="text1"
                android:textSize="40dp" />
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="text2"
                android:textSize="40dp" />
    
        </LinearLayout>
    
    </LinearLayout>

    gravity 값을 적용 안했을때

     

      <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#bbb"
            android:layout_gravity="center"
            >

    이렇게 layout_gravity에 center 속성 값을 넣어 보겠습니다.

    TextView가 속해있는 레이아웃이 부모 레이아웃에 가운데에 정렬된 것을 볼 수 있습니다.

     <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#bbb"
            android:gravity="center"
            >

    layout_gravity가 아닌 gravity에 center 속성 값을 넣어 보겠습니다.

    layout_gravity는 TextView가 속해있는 레이아웃이 부모 레이아웃 가운데로 정렬됐었지만

    gravity를 넣은 레이아웃은 자기 뷰안에 있는 TextView 들을 가운데 정렬시킨 것을 볼 수 있습니다.

     

    layout_gravity 과 gravity의 속성 값들은 아래와 같습니다.

    bottom 해당 위젯을 하단에 위치 시킵니다. 사이즈 변화 x
    center 해당 위젯을 정중앙에 위치 시킵니다. 사이즈 변화 x
    center_horizontal 해당 위젯을 가로 중앙에 위치 시킵니다. 사이즈 변화 x
    center_vertical 해당 위젯을 세로 중앙에 위치 시킵니다. 사이즈 변화 x
    clip_horizontal 해당 위젯의 가로 길이가 부모 뷰보다 크면 넘어간 부분은 잘라냅니다.
    clip_vertical 해당 위젯의 세로 길이가 부모 뷰보다 크면 넘어간 부분은 잘라냅니다.
    end 해당 위젯을 부모 뷰 마지막에 위치 시킵니다. 사이즈 변화 x
    fill 해당 위젯의 가로 세로 크기를 부모 뷰 크기에 맞춰서 늘린 다음 채워줍니다.
    fill_horizontal 해당 위젯의 가로 크기를 부모 뷰 크기에 맞춰서 늘린 다음 채워줍니다.
    fill_vertical 해당 위젯의 세로 크기를 부모 뷰 크기에 맞춰서 늘린 다음 채워줍니다.
    left 해당 위젯을 왼쪽에 위치 시킵니다. 사이즈 변화 x
    right 해당 위젯을 오른쪽에 위치 시킵니다. 사이즈 변화 x
    start 해당 위젯을 부모 뷰 시작점에 위치 시킵니다. 사이즈 변화 x
    top 해당 위젯을 상단에 위치 시킵니다. 사이즈 변화 x

     

    반응형

    댓글

Designed by Tistory.