[Android Studio] 안드로이드 레이아웃 종류
사용자가 보는 화면은 Activity로 이루어져있다.
레이아웃은 뷰들을 배치하는데 도움을 준다!!
1 ) Linear Layout
: 위젯들을 왼쪽 위부터 아래나 오른쪽으로 차례로 배치
: orientation속성 ( vertical - 수직 / horizontal : 수평)
: 자식들이 충접되지 않고, 지정한 방향으로 쌓이는 (stacked) 형태로 표시된다.
<속성>
layout_gravity : 부모 컨테이너의 남은 영역 안에서 뷰를 정렬하는데 사용
gravity : 뷰 내부의 내용물 정렬하는데 사용
layout_weight : 공간분할
여러개의 뷰를 특정한 비례에 맞춰 배치하고 싶을때
2) Relative Layout: 관계적 레이아웃
상대 위치에 하위 뷰를 표시하는 뷰 그룹
여러개의 중첩된 linear layout그룹을 relative layout으로 대체할 수 있다.
부모 컨테이너나 다른 뷰와의 상대적 위치를 이용해 화면에 배치하는 방식
3) Frame Layout
하나의 뷰만 보여주는 방법
주로 Fragment를 사용하는 경우에 많이 사용된다.
가장 먼저 배치한 위젯이 작다면 안보일 수 있다. => 가장 마지막에 추가된 뷰가 가장 전면에 표시된다.
뷰를 1->2->3 순으로 작성하면 실제로 화면에는 3->2->1 순서로 나타난다.
보통 visibility효과를 주어 화면 전환을 하는 것에 사용되는 것 같다.
4 ) Table Layout
격자(Grid) 모델자식 View 위젯들을 테이블(행과 열)로 나누어 표시하는 레이아웃layout_width 와 layout_height 속성을 사용하지 않는다. TableRow 속성을 사용해 row의 개수와 안의 view들의 개수로 column값이 정해진다!여기에 stretchColumn속성을 사용하면 여유공간이 생기지 않도록 뷰를 배치할 수 있다. 여기서는 총 3 * 2이므로 coulmn값을 여백없이 하고 싶다면 인덱스 0,1,2를 늘려주면 된다 --> android:stretchCoulmns="0, 1, 2"
5 ) Grid Layout
table layout의 진화버전 ? 자식 뷰들을 순서대로 배치한다는 점은 linear layout과 비슷
table과 마찬가지로 layout_width 와 layout_height속성을 따로 지정하지 않는다.
layout_columnSpan과 같은 속성으로 열병합도 가능하다.
6 ) Constraint Layout
가장 많이 사용되는 layout!
relativelayout보다 유연하고 android 스튜디오의 layout editor와 함께 사용하기 쉽다.
굉장히 많은 속성들을 갖고있다!(참조 : https://www.charlezz.com/?p=669)
Constraint Layout – Part1. 만능 레이아웃 | 찰스의 안드로이드
ConstraintLayout ConstraintLayout은 ViewGroup을 상속받아 확장시킨 라이브러리 입니다. 지난 2017년 2월에 1.0 버전이 출시되어 많은 개발자들이 이 라이브러리를 유용하게 써왔습니다. 출시때는 Android API9
www.charlezz.com
가상 오브젝트
- Guideline
가로 또는 세로의 축을 가진 가상의 뷰 / 부모 뷰의 특정 위치를 기준점으로 삼을 때 사용한다.
- Barrier
예) 세로로 배치된 두개의 텍스트 뷰가 있을때, 오른쪽에 이미지 뷰를 넣으려고 한다. 상황에 따라 두개의 텍스트 뷰의 길이가 달라질 수 있는데 , 어떤 뷰를 기준으로 삼아야할지 모를때! Barrier를 사용한다.
constraint_referenced_ids : 어떤 뷰를 참조할지 설정
barrirerDirection: 참조하는 뷰의 어느 방향에 위치할지 설정
<추가속성정리 >
padding : 뷰 내부의 내용물과 뷰의 테두리를 얼마나 띄울 것인지 지정
margin : 뷰의 테두리선 바깥쪽 공간을 얼마나 띄울 것인지 지정