APP/안드로이드프로그래밍

안드로이드 레이아웃 : Relative Layout

헬로월드! 2020. 11. 14. 14:41

Relative Layout은 상대적인 레이아웃으로 자식 뷰 또는 부모 뷰 간의 관계에 따라 배치를 적용하는 레이아웃이다. 

레이아웃 계층 구조를 평면으로 유지하여 성능을 개선하므로 UI 설계에 유용한 유틸리티이다. 

Relative Layout 으로 구현하기 전에는 계속 여러 개 중첩된 LinearLayout 을 이용하였는데, RelativeLayout 을 사용한다면 더 간단하게 할 수 있는 것 같았다. Linear Layout 을 여러개 써서 계층이 깊어지는 것을 막을 수 있다. 적은 양의 코드로 뷰의 자유로운 배치를 위해 필요하다. 

 

먼저 RelativeLayout 을 사용한다면 하위 뷰, 상위뷰, 서로 다른뷰를 ID로 구분하고 상대적인 위치를 지정할 수 있다. 

 

RelativeLayout 에는 많은 레이아웃 속성이 있다.

1) 부모 뷰 그룹간의 관계에 따른 배치

  • android:layout_alignParentTop  : 부모 뷰그룹 영역에서 상단에 배치 
  • android:layout_alignParentLeft : 부모 뷰그룹 영역에서 왼쪽에 배치 
  • android:layout_alignParentRight: 부모 뷰그룹 영역에서 우측에 배치
  • android:layout_alignParentBottom : 부모 뷰그룹 영역에서 하단에 배치

 

  • android:layout_alignParentVertical : 부모 뷰그룹 영역에서 수직 중앙에 배치
  • android:layout_centerHorizontal : 부모 뷰그룹 영역에서 수평 중앙에 배치
  • android:layout_centerInParent: 부모 뷰그룹 영역에서 정중앙에 배치 

2) 자식 뷰 간의 관계 배치

  • android:layout_above = 기준 뷰 ID

빨간색: 배치되는뷰, 파란색: 기준뷰 

기준뷰 위에 배치! 

 

  • android:layout_below = 기준 뷰 ID

기준뷰 아래에 배치할 뷰를 배치! 

 

  • android:layout_toRightOf

기준뷰 오른쪽에 붙이기

  • android:layout_toLeftOf

기준뷰 왼쪽에 붙이기 

 

  • android:layout_alignTop = 기준 뷰 ID

기준뷰와 배치할 뷰의 상단부를 맞춰서 배치

 

  • android:layout_alignBottom = 기준 뷰 ID 

기준뷰와 배치할 뷰를 하단부에 맞추어 배치 

  • android:layout_alignLeft

왼쪽선에 맞춰서 배치

  • android:layout_alignRight

오른쪽 선에 맞춰서 배치

 

XML 레이아웃에서 Relative 레이아웃을 이용했을 때 순서와 상관없이 종속성의 선언이 가능하다.

view2가 계측 구조에 선언된 마지막 뷰라고 해도 view1을 view2 아래에 배치할 수 있다!