먼저 LinearLayout 속성을 알아보자.
[ orientation ] : vertical / horizontal
LinearLayout은 기본적으로 가로 방향으로 나열된다. (orientation = "horizontal")
그래서 세로 방향으로 나열하고자 하면 orientation 속성을 vertical로 지정해야 한다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
~~~ 위젯 배치 ~~~
</LinearLayout>
[ gravity & layout_gravity ]
gravity : 레이아웃 안의 위젯을 어디에 배치할 것인지를 결정 (자식을 어디에 위치시킬지를 결정)
값으로는 left / right / center/ top / bottom 그리고 2개를 조합해 left|bottom 처럼 사용할 수 있다.
<LinearLayout
android:orientation="vertical"
android:gravity="right|bottom" >
~~~위젯이 위부터 수직방향으로 오른쪽 아래에 배치된다~~~
</LinearLayout>
layout_gravity : 자신의 위치를 부모의 어디에 위치시킬지를 결정
값은 gravity와 동일하다.
<Button
android:layout_gravity="right"/>
gravity는 레이아웃에, layout_gravity는 위젯에 주로 지정한다.
gravity와 layout_gravity 속성에 사용할 수 있는 값으로
center_vertical / center_horizontal / fill / fill_vertical / fill_horizontal / clip_vertical / clip_horizontal / start / end 등도 있다.
[ baselineAligned ] : true / false
크기가 다른 위젯들을 보기 좋게 정렬해준다.
true(디폴트값) -> 중앙에 맞춰서 정렬
false -> 위에 붙어서 정렬
다음으로 한 화면에서 위젯을 수평과수직으로 다양하게 배치할 수 있도록 중복 리니어레이아웃 형태에 대해 알아보자.

<LinearLayout
android:orientation="vertical">
<LinearLayout
android:orientation="vertical">
~~~버튼1,버튼2 위젯~~~
</LinearLayout>
<LinearLayout
android:orientation="horizontal">
~~~버튼3,버튼4 위젯~~~
</LinearLayout>
<LinearLayout
android:orientation="vertical">
~~~버튼5,버튼6 위젯~~~
</LinearLayout>
</LinearLayout>
LinearLayout을 여러 개 사용할 경우 각 레이아웃의 크기를 지정해야 한다.
이 때 주로 사용하는 속성이 layout_weight 속성이다.
[ layout_weight ]
이 속성은 전체 화면에 대한 비율로 지정할 수 있다.
<LinearLayout
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
~~~위젯1~~~
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
~~~위젯2~~~
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
~~~위젯3~~~
</LinearLayout>
</LinearLayout>
위 코드는 각 위젯이 1:1:1의 비율로 차지하게 된다.
'Android' 카테고리의 다른 글
[Android] RecyclerView (1) | 2023.08.03 |
---|---|
[Android] Fragment 생명주기 (1) | 2023.04.20 |
[Android] Activity 생명주기와 상태 (0) | 2023.04.07 |
[Android] Layout 개요 (0) | 2022.11.21 |
[Android] View 클래스 (0) | 2022.11.20 |