[Android] xml 레이아웃(1) - View & ViewGroup

문날·2023년 7월 16일

1. 뷰와 뷰 그룹이란? (View and ViewGroup)

레이아웃은 앱에서 사용자 인터페이스를 위한 구조(ex.활동)을 정의한다. 레이아웃의 모든 요소는 ViewViewGroup 객체의 계층 구조를 사용하여 빌드 된다. 일반적으로 View는 사용자가 보고 상호작용할 수 있는 것들을 그린다. 반면, ViewGroup은 레이아웃 구조를 정의하는 보이지 않는 부분을 담는 containter다.

View (widget) : 사용자가 볼 수 있고, 상호작용(터치) 할 수 있는 요소
ViewGroup (layout) : 레이아웃 구조를 정의하는 containter역할

View라 부리는 위젯(widget)들은 View 클래스를 상속받아 만들어진다. 그리고 ViewGroup이라고 불리는 레이아웃들은 ViewGroup클래스를 상속받아 만들어진다. 그런데, ViewGroup클래스는 View클래스를 상속 받고 있다. 따라서 ViewGroup역시 일종의 View이기 때문에 View와 함께 ViewGroup안에 배치될 수 있다.

2. 뷰 종류 (View type)

안드로이드 스튜디오 IDE를 살펴보면 xml Design Editor의 Palette에서 사용 가능한 view 목록을 확인할 수 있다.

TextView
Button
ImageView
RecyclerView
FragmentContainterView
ScrollView
Switch
...


3. 뷰 그룹 종류 (ViewGroup type)

LinearLayout(선형 레이아웃) : 가로 또는 세로의 단일 방향으로 모든 하위 요소를 정렬하는 뷰 그룹
ConstraintLayout(제약,제한,조건 레이아웃) : 상대 위치에 따라 유연한 방식으로 위젯의 위치와 크기를 지정하는 뷰 그룹 (Android JetPack 지원)
RelativeLayout(상대적 레이아웃) : 상대위치에 하위의 뷰를 표시하는 뷰 그룹
GridLayout(그리드 레이아웃) : 자식을 직사각형 그리드에 배치하는 뷰그룹
FrameLayout(프레임 레이아웃) : 단일 항목을 표시하기 위해 화면의 영역을 차단하도록 설계한 뷰 그룹
TableLayout(테이블 레이아웃) : 자신의 하위 요소를 행과 열에 배치하는 뷰그룹
...

위의 뷰와 뷰 그룹 종류들은 이후 실습으로 직접 구현하면서 알아볼 예정이다.

참고
https://developer.android.com/develop/ui/views/layout/declaring-layout

profile
개발 공부

0개의 댓글