Android

[Android 1-5] Layout

연나연 2024. 1. 17. 11:05

 

Layout

- 안드로이드 애플리케이을 개발할 시 화면의 구성해야 한다.
- 안드로이드는 화면을 구성할 때 배치되는 뷰들이 어디에 배치된다는 좌표를 설정하지 않는다.

- 안드로이드는 좌표가 아닌 배치되는 모양을 결정하게 된다.
- 개발자가 배치되는 모양을 결정하고 뷰들을 배치하면 안드로이드 OS가 단말기에 적합한 좌표를 계산하고 뷰들을 배치하게 된다.

Parent와 Child

- 안드로이드는 화면을 구성하기 위해 layout 을 먼저 배치하고 그 위에 다른 View 들을 배치하게 된다.
- 이 때 layout 을 Parent라고 부르고 배치되는 View 들을 Child라고 부른다.
- 모든 View 들은 단 하나의 Parent를 가질 수 있으며 모든 layout 은 다수의 Child를 가질 수 있다.
< Layout들의 공통속성 >

id : View를 지칭하기 위해서 사용하는 이름 한 화면에서 같은 id가 있으면 안된다.
layout_width : 가로 길이. (wrap_content or match_parent or dp 단위의 크기)
layout_height : 세로 길이 (wrap_content or match_parent or dp 단위의 크기)
        wrap_content : 자기 자신을 완벽하게 보여줄 수 있는 최소의 크기. 공간이 부족할 경우 화면에서 짤린다.
        match_parent : 부모의 크기에 꽉 채워준다. 공간이 부족할 경우 계속 축소된다.
padding : 내부의 여백
margin : 외부의 여백
layout_gravity : layout 내에서 자신의 정렬 위치
Linear Layout

방향성을 가지고 view 를 배치하는 layout 이다.
가로 혹은 세로방향으로 배치할 수 있으며 한 칸에 하나의 view 만 배치할 수 있다.
안드로이드에서 가장 많이 사용하는 layout 으로 여러 LinearLayout을 조합하여 다양한 모양을 만들 수 있다.

1. LinearLayout의 주요 속성
  - orientation : 뷰가 배치되는 방향을 설정
             vertical : 세로 방향
             horizontal(생략) : 가로 방향
2. LinearLayout에 배치되는 View의 주요 속성
  - weight : 배치는 뷰가 차지할 공간 비율

Frame Layout

내부에 배치된 View 들이 같은 자리에 계속 배치되는 layout 이다.
화면을 구성하기 보단 탭 등과 같은 기능을 만들 때 사용하는 경우가 많다.

<FrameLayout 주요속성>

주요 속성은 없다.
FrameLayout에 배치되는 view 는 모두 좌측 상단에 배치된다.
margin 속성이나 layout_gravity 속성을 이용해 배치되는 위치를 결정하여 사용한다.
Constraint Layout

RelativeLayout 을 개선한 layout 으로 RelativeLayout 보다 유연하게 화면을 구성할 수 있다

1. ConstraintLayout에 배치되는 View의 주요 속성
- 부모 혹은 다른 뷰와의 관계를 설정한 제약 조건 속성들