Notice

[안드로이드] RelativeLayout

LinearLayout 과 다르게 가로 혹은 세로 방향으로 뷰를 정렬하는 것이 아닌 각 요소간의 상대적(Relative) 위치를 고려해 정렬한다.

  • 자식 뷰간의 위치는 기준 객체에 ID를 지정해 위치를 설정해준다.
  • 부모 뷰를 기준으로 한다면 ID를 따로 지정해줄 필요는 없음.

 

속성 설명
`layout_toLeftOf` 대상 객체를 기준 객체의 왼쪽에 배치
`layout_toRightOf` 대상 객체를 기준 객체의 오른쪽에 배치
`layout_toStartOf` 대상 객체를 기준 객체의 시작 위치에 배치
`layout_toEndOf` 대상 객체를 기준 객체의 끝 위치에 배치
`layout_above` 대상 객체를 기준 객체의 위에 배치
`layout_below` 대상 객체를 기준 객체의 아래에 배치
`layout_alignParentLeft` 대상 객체를 부모 영역내에서 왼쪽에 배치
`layout_alignParentRight` 대상 객체를 부모 영역내에서 오른쪽에 배치
`layout_alignParentTop` 대상 객체를 부모 영역내에서 위쪽에 배치
`layout_alignParentBottom` 대상 객체를 부모 영역내에서 아래쪽에 배치
`layout_alignParentStart` 대상 객체를 부모 영역내에서 시작 위치쪽에 배치
`layout_alignParentEnd` 대상 객체를 부모 영역내에서 끝 위치에 배치
`layout_centerHorizontal` 대상 객체를 부모 영역내에서 가로 방향의 가운데 배치
`layout_centerVertical` 대상 객체를 부모 영역내에서 세로 방향의 가운데 배치
`layout_centerInParent` 대상 객체를 부모 영역내에서 정 중앙에 배치
`layout_alignLeft` 대상 객체의 왼쪽을 기준 객체의 왼쪽에 맞춤
`layout_alignRight` 대상 객체의 왼쪽을 기준 객체의 오른쪽에 맞춤
`layout_alignTop` 대상 객체의 왼쪽을 기준 객체의 위쪽에 맞춤
`layout_alignBottom` 대상 객체의 왼쪽을 기준 객체의 아래쪽에 맞춤
`layout_alignBaseline` 대상 객체의 폰트 기준선을 기준 객체의 폰트 기준선에 맞춤.

 

 


1. 자식뷰간의 상대적 위치

 

  • toRightOf

<TextView
        android:id="@+id/B"
        android:layout_width="100dp"
        android:layout_height="100dp"/>

    <TextView
        android:id="@+id/A"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_toRightOf="@+id/B" />

 

  • below

<TextView
        android:id="@+id/B"
        android:layout_width="100dp"
        android:layout_height="100dp"/>

    <TextView
        android:id="@+id/A"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_below="@+id/B" />

 

  • toStartOf

<TextView
        android:id="@+id/B"
        android:layout_width="100dp"
        android:layout_height="100dp"/>

    <TextView
        android:id="@+id/A"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_toStartOf="@+id/B" />

 

 

 

 

 

 

2. 부모를 기준으로 위치 결정

 

 

1) centerInParent

 

   <!-- 01. 부모를 기준으로 center에 위치 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="@color/black"
            android:layout_centerInParent="true" />

 

2) alignParentBottom

 

    <!-- 02. 부모를 기준으로 bottom에 위치 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="@color/purple_500"
            android:layout_alignParentBottom="true"
            />

 

3) alignParentRight

 

    <!-- 03. 부모를 기준으로 right 에 위치 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="@color/teal_700"
            android:layout_alignParentRight="true"
            />

 

4) alignParentEnd

 

<!-- 04. 부모를 기준으로 end 에 위치 -->
        <TextView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="#E91E63"
            android:layout_alignParentEnd="true"
            />

 

5) alignParentTop

 

   <!-- 05. 부모를 기준으로 top 에 위치 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="#858F3252"
            android:layout_alignParentTop="true"
            />

 

6) centerHorizontal

 

    <!-- 06. 수평의 중간에 위치 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="#FFC107"
            android:layout_centerHorizontal="true"
            />

 

7) centerVertical

    <!-- 07. 수직의 중간에 위치 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="#A0FF07"
            android:layout_centerVertical="true"
            />

 

 

 

 

 

 

 

'안드로이드 > 정리' 카테고리의 다른 글

[안드로이드] ScrollView  (0) 2021.09.22
[안드로이드] FrameLayout  (0) 2021.09.22
[안드로이드] LinearLayout  (0) 2021.09.19
[안드로이드] invisible과 gone  (0) 2021.09.18
[안드로이드] ConstraintLayout  (0) 2021.09.18
글쓰기 설정