본문 바로가기

Android ᙏ̤̫͚/Android Programming

[Android] chapter 1 - 4. 리니어 레이아웃

 

 

boostcourse 안드로이드 앱 프로그래밍 1. 레이아웃 만들기

 - 4. 리니어 레이아웃

 

 

대표적인 레이아웃 정리

- 제약 레이아웃 (Constraint Layout)

    - 제약 조건 사용하여 화면 구성하는 방법

    - 안드로이드 스튜디오에서 자동으로 생성되는 default layout

- 리니어 레이아웃 (Linear Layout)

    - 한 쪽 방향으로 차례로 뷰 추가하여 화면 구성하는 방법 (상자 쌓듯이 뷰 하나씩 쌓아올림)

    - 뷰가 차지하는 사각형 영역을 상자라고 보기도 함

    - 뷰를 아래쪽 혹은 오른쪽 어떤 방향으로 쌓을 것인지 먼저 결정 필요

        - orientation 속성 값을 가로는 Horizontal, 세로는 Vertical로 지정

    - 레이아웃 안에 레이아웃 넣어 예를 들어 오른쪽으로 쌓고 내부 레이아웃은 아래쪽으로 쌓는 것도 가능

- 상대 레이아웃 (Relative Layout)

    - 부모 혹은 다른 뷰와의 상대적 위치로 화면 구성하는 방법

- 프레임 레이아웃 (Frame Layout)

    - 가장 상위에 있는 하나의 뷰 혹은 뷰그룹만을 보여주는 방법

- 테이블 레이아웃 (Table Layout)

    - 격자 모양의 배열 사용하여 화면을 구성하는 방법

 

 

 

뷰의 영역 구분

- Box : 뷰의 영역

- Border : 테두리

- Margin : 테두리 밖의 영역

    - layout_margin, layout_marginTop / Bottom / Left / Right 속성 이용하여 조절 가능

- Padding : 테두리 내부 영역

    - padding, paddingTop / Bottom / Left / Right 속성 이용하여 패딩의 값 조절 가능

 

 

 

리니어 레이아웃 (Linear Layout)

: 창고 안에 박스를 쌓듯이 뷰가 차지하는 영역을 박스로 보고 한 방향으로 쌓아 화면을 구성하는 방법

 

- 방향 : 필수 속성

    - orientation 속성 사용하여 가로는 horizontal / 세로는 vertical 값으로 설정

 

- 뷰의 정렬 : 두 가지의 속성 사용

    - layout_gravity : 뷰 정렬 시 사용

        - 부모 레이아웃 내 여유 공간 존재하는 경우 여유 공간 내에서 뷰 정렬

    - gravity : 뷰 내부 내용물 정렬 시 사용

        - 뷰 내부에 여유 공간 존재하는 경우에만 정렬 가능 (width가 wrap_content로 설정된 경우, 의미 없음)

 

- layout_weight 속성

    - 공간 분할에 사용되는 속성으로 남아있는 여유공간 존재하는 경우 여유 공간을 분할

    - 예를 들어 두 버튼의 공간을 1/3, 2/3 만큼 주고 싶다면,

      첫번째는 android:layout_weight="1", 두번째는 android:layout_weight="2"로 설정해줌