본문 바로가기

Android

[Android] LinearLayout

 먼저 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