안드로이드 자바 코틀린 기초 지식/안드로이드 기초 지식
다양한 Layout 들
Everyday Growing Engineer
2023. 3. 2. 19:22
Android Layout 종류
- LinearLayout
- RelativeLayout
- ConstraintLayout
- TableLayout
- GridLayout
- FrameLayout
- 기타 Layout
LinearLayout
LinearLayout은 세로나 세로로 들어가는 Layout으로 대표적으로 많이 사용하는 Layout입니다. 가로 세로는 orientation이 결정함.
- vertical : 세로 방향
- horizontal : 가로 방향
RelativeLayout
- RelativeLayout은 부모(Parent) View 또는 자식(Child) View의 상대적 위치 관계를 정의하여 UI를 배치하는 Layout입니다.
- 이때 기준이 되는 뷰를 지정하기 위해서는 기준뷰에 id값이 설정되어 있어야 합니다.
- ConstraintLayout을 사용하게 되면서 권장하지 않음.
Constraint Layout
- Constraint Layout은 (1) RelativeLayout의 "상대적 위치 관계에 따른 배치" 특성 + (2) LinearLayout의 "가중치(weight)가 가진 장점" + (3) chain 사용으로 다른 레이아웃 없이 "요소들을 그룹화"
- 구글이 권장하는 Layout으로 처음 Activity를 만들면 기본값으로 세팅되어있습니다.
- ConstraintLayout은 레이아웃에 배치되는 뷰들에 여러 제약을 적용하여 각 뷰의 위치와 크기를 결정한다.
- 뷰 계층을 간단하게 구성하여 유지보수, 성능 향상
- relative layout에서 4 depth이상 들어가야하는 것도 1 depth로 가능!!!
- Relative 보다 더 유연한 위치속성 (위치를 정하는 속성이 훨씬 많음) 참고
TableLayout
- 행(row)과 열(column)으로 구성되는 테이블 형태로 화면을 구성하는 레이아웃
GridLayout
- GridLayout은 TableLayout의 좀 더 발전된 형태로 TableLayout과 LinearLayout이 합쳐진 Layout.
- 2차원 격자 무늬 형태의 레이아웃으로 수직, 수평의 라인으로 구성되어 행과 열의 집합 형태로 만들어 지는 레이아웃
- LinearLayout과 마찬가지로 orientation을 설정해 세로 배치 혹은 가로 배치를 설정해 줄 수 있습니다.
- TableLayout은 분할된 column을 통합할 수 있지만 row는 통합이 불가능하다. 이를 가능하게하는 것이 GridLayout이다.
TableLayout과 GridLayout
- 이 두 레이아웃의 경우, 모두가 행과 열을 사용하여 레이아웃을 분할하는 기능을 한다.
- Table Layout에서는 Column이나 Row를 지정할 때 TableRow의 갯수에 따라 지정이 되었지만 GridLayout은 속성을 직접 지정해서 훨씬 직관적이다.
- 동일한 UI의 경우 GridLayout은 일반적으로 TableLayout보다 빠르고 메모리가 적게 소요된다
FrameLayout
- FrameLayout은 그 안에 포함되어 있는 자식뷰들을 차례대로 중첩시켜 나타내는 레이아웃을 말한다.
- FrameLayout에 배치되는 view 는 모두 좌측 상단에 배치된다.
- Margin 속성이나 layout_gravity 속성을 이용해 배치되는 위치를 결정하여 사용한다
TabLayout
- TabLayout은 Tab을 선택하여 화면 전환을 할 수 있도록 만든 Layout입니다. 주 메뉴 안에서 보조 메뉴를 선택할 때 주로 사용합니다.
DrawerLayout
- DrawerLayout은 말 그대로 화면의 끝에서 가운데로 드래그하여 나타내는 보조 Layout입니다. 하지만 최신 안드로이드에서는 제스처 효과때문에 드래그 기능은 막고 특정 버튼을 통해 띄울 수 있도록 사용하기를 권장하고 있습니다.