선형으로 배치 - LinearLayout
레이아웃 클래스는 저마다 뷰를 배치하는 규칙이 있습니다. 오늘은 LinearLayout에 대해서 알아보겠습니다.
- LinearLayout은 뷰를 가로나 세로 방향으로 나열하는 레이아웃 클래스입니다.
- android:orientation : horizontal(세로)이나 vertical(가로)로 값으로 지정할 수 있습니다.
android : orientation = "vertical" //하위 뷰들을 수직방향으로 배치 android : orientation = "horizontal" //하위 뷰들을 수평방향으로 배치
- 향만 설정하면 뷰를 추가한 순서대로 나열합니다.
- LinearLayout은 중첩이 가능하고 레이아웃 클래스 뷰 이므로 다른 레이아웃 클래스에 포함할 수도 있습니다.
- android:layout_weight : 수치를 따로 계산하지 않아도 각 뷰에 설정한 가중치로 여백을 채울 수 있습니다.
android:layout_weight="1" //이뷰의 가중치를 1로설정
- android:gravity : 콘텐츠를 대상으로 정렬을 시킬 수 있습니다. 속성 기본값은 left/top입니다.
- android:layout_gravity : 뷰 자체를 대상으로 정렬을 시킬 수 있습니다. 속성 기본값은 left/top입니다.
- layout_gravity는 방향으로 뷰를 배치하는 레이아웃이므로 orientantion 속성에 설정한 방향과 같은 방향으로 layout_gravity 속성이므로 위 예시에 center_vertical를 적용되지 않습니다.
속성값 | 내용 |
top | 해당 위젯을 윗쪽에 위치 시킵니다. 이때 사이즈에 변화는 없습니다. |
bottom | 해당 위젯을 하단에 위치 시킵니다. 이때 사이즈에 변화는 없습니다. |
left | 해당 위젯을 왼쪽에 위치 시킵니다. 이때 사이즈에 변화는 없습니다. |
right | 해당 위젯을 오른쪽에 위치 시킵니다. 이때 사이즈에 변화는 없습니다. |
center_vertical | 해당 위젯을 세로 중앙에 위치 시킵니다. 이때 사이즈에 변화는 없습니다. |
fill_vertical | 해당 위젯의 세로를 부모 뷰그룹의 사이즈에 맞게 늘려 채워줍니다. |
center_horizontal | 해당 위젯을 가로 중앙에 위치 시깁니다. 이때 사이즈에 변화는 없습니다. |
fill_horizontal | 해당 위젯의 가로를 부모 뷰그룹의 사이즈에 맞게 늘려 채워줍니다. |
center | 해당 위젯을 정중앙에 위치 시킵니다. 이때 사이즈의 변화는 없습니다. |
fill | 해당 위젯을 가로/세로 길이를 부모 뷰그룹의 사이즈에 맞게 늘려 채워줍니다. |
clip_vertical | 해당 위젯의 세로 길이가 부모 뷰그룹보다 클 경우 넘어서는 부분은 잘라냅니다. |
clip_horizontal | 해당 위젯의 가로 길이가 부모 뷰그룹 보다 클 경우 넘어서는 부분은 잘라냅니다. |
start | 해당 위젯을 부모 뷰그룹의 시작점에 위치 시켜 줍니다. 이때 사이즈의 변화는 없습니다. |
end | 해당 위젯을 부모 뷰그룹의 마지막에 위치 시켜 줍니다. 이때 사이즈의 변화는 없습니다. |
android:gravity="end|bottom"
android:layout_gravity="end|bottom"