레이아웃이란?
ViewGroup의 파생 클래스로서, 포함 된 View를 정렬하는 기능
레이아웃의 종류
01. Linear Layout (*Orientation -> vertical or horizontal)
- 컨테이너에 포함 된 뷰들을 수평 또는 수직으로 일렬 배치하는 레이아웃
- 자식 뷰를 수평,수직으로 일렬 배치하는 레이아웃으로, 가장 단순하고 직관적이며 사용빈도가 높다.
- LinearLayout의 자식(Children)으로 배치되는 View위젯들은 오직 한 방향 (가로 또는세로)으로만 배치
- 위젯의 크기(높이 또는 너비)와 관계없이 한 줄로만 배열
- 아래 그림과 같이 가로 방향으로 배치 될 때는 가로로 한 줄(onlyonerow)
- 세로 방향으로 배치될 때는 세로로 한 줄(onlyonecolumn)로 표시
- LinearLayout의 자식들은 중첩(overrap)되지 않고,지정한 방향으로 쌓이는(stacked)형태로 표시
- LinearLayout은 자식(Children)들이 배치 될 때,전체 영역 대비 비율의개념으로지정할수있는Weight(가중치)를 설정
- 예) 전체 크기를 10으로 본다면, 첫 번째 View위젯은 3, 두 번째View위젯은7의영역을차지하도록 만듦
02. Relative Layout
- 뷰를 서로 간의 위치 관계나 컨테이너와의 위치 관계를 지정하여 배치하는 레이아웃
- RelativeLayout은 자식(Children)View위젯들이 서로 간의 상대적 배치 관계에 따라 화면에 표시 될 위치가 결정되도록 만들어주는Layout클래스
- 예)"A를 화면에 표시하고 B는A의 오른쪽에 표시”,"C를 첫번째 자식으로 두고 D가 C아래에 위치하도록 배치”
- View위젯들을 포함하는 Relative Layout(View위젯 입장에서는 부모(Parent))자체가 상대적 위치의 기준점으로 사용될수도있습니다.
- 만약 RelativeLayout의 자식(Children)들에 "상대적인"배치 기준을 지정하지 않는다면, RelativeLayout내부에서 중첩되어 표시된다
03. Table Layout
- 표 형식으로 차일드를 배치하는 레이아웃
- 자식(Children) View위젯들을 테이블(행과 열로 구성)로 나누어 표시하는 Layout클래스
- stretchColumns : 늘릴 열을 지정(인텍스는 0부터 시작 됨)
TableRow
- 정해진 규칙에 따라 크기가 결정되므로, layout_width/height를 지정할 필요가 없다.
04. Frame Layout
- 컨테이너에 포함된 뷰들을 전부 좌상단에 배치하는 레이아웃
- 하나의 자식 View위젯만 표시 할 때 사용하는 Layout클래스
- FrameLayout에 여러 View위젯을 자식으로 추가하면 겹쳐진 형태로 표시되며,가장 최근에 추가된 View위젯이 가장 상위(ontop)에 표시
- 모든 자식 View는 좌상단에 배치되며,여러 개의 자식View를 포함하는 경우나 열된순서대로 겹쳐져서 표시 됨
05. Constraint Layout
- 제약 조건을 사용해 화면을 구성하는 방법
- 복잡한 레이아웃을 단순한 계층구조를 이용해 표현 할 수 있는 ViewGroup
- 형제 View들과의 관계를 정의해서 레이아웃을 구성한다는 점은 RelativeLayout과 비슷하지만 보다 유연하고 다양한 기능을 제공함
- RelativeLayout에선 불가능했던 자식 뷰간의 상호 관계 정의 가능
- ex)두개의 View를 위아래로 붙여서 컨테이너 중앙에 배치하기
- LinearLayout을 써야만 했던 뷰비율 조절도 간단히 가능
- 뷰계층을 간단하게 할 수 있어 유지보수도 좋고 성능도 좋고!
'Android Studio' 카테고리의 다른 글
Android Studio 폰트 설정 및 적용 방법 (0) | 2023.12.13 |
---|---|
Android Studio Activity Lifecycle (0) | 2023.12.13 |
Android Studio UI - View (0) | 2023.12.11 |
Android Studio Bookmarks 활용 (0) | 2023.12.11 |
안드로이드가 뭐야? (0) | 2023.12.11 |