뷰의 속성
- 뷰(View)는 화면에 들어가는 각각의 요소를 말하며 일반적으로 컨트롤이나 위젯이라고 불린다.
- 즉, 사용자의 눈에 보이는 화면의 구성 요소들이 바로 뷰이다. 이러한 뷰를 여러개 포함하고 있는 것을 뷰 그룹(ViewGroup)이라고 하며, 이 뷰 그룹 안에서 뷰의 위치를 지정할 수 있다.
- 뷰 그룹은 여러개의 뷰를 담고 있는 그릇과 같아서 뷰와는 약간 다르지만 뷰 그룹 안에는 뷰 뿐만 아니라 또 다른 뷰 그룹도 넣을 수 있다.
- 이것은 뷰그룹이 뷰를 상속하여 만들어졌기 때문이다.
- 여러개의 뷰를 담고 있는 뷰그룹 역시 하나의 뷰라고 했을 때 또 다른 뷰그룹이 이 뷰그룹을 뷰처럼 다룰 수 있다. 이러한 뷰와 뷰그룹의 관계는 여러 가지 디자인 패턴 중에 컴포지트 패턴(Composite Pattern)을 사용하여 만들어진 것이다.
- 컴포지트 패턴으로 만들어진 뷰 그룹은 뛰어난 확장성을 가집니다.
- 컴포지트 패턴으로 정의된 뷰와 뷰그룹의 관계를 표현하고 있다.
- 뷰가 그룹을 상속하게 되면 뷰그룹도 뷰가 되므로 뷰그룹 안에 또 다른 뷰그룹을 가지고 있을 수 있다. 왜냐하면 뷰그룹은 뷰를 담을 수 있는데 담고 있는 뷰 중 하나가 뷰그룹이면 그 안에 다른 뷰들이 또 들어갈 수 있기 때문이다.
- 이런 뷰와 뷰 그룹의 관계는 안드로이드 UI를 매우 자연스럽게 구성할 수 있게 한다.
- 이외에도 뷰는 다른 뷰의 속성을 상속하여 상속받은 뷰의 특성을 그대로 가질 수 있다. 예를 들어, 버튼은 텍스트뷰를 상속해서 만들었기 때문에 텍스트뷰의 속성을 그대로 갖고 있다.
위젯과 레이아웃으로 구별되는 뷰
- 안드로이드는 화면을 구성하는 것들을 크게 뷰와 뷰그룹으로 나눌 수 있다고 했는데, 각각의 역할을 구분하기 위해 뷰의 종류에 따라 다른 이름으로 부른다.
- 뷰 중에 화면에 보이는 일반적인 컨트롤러의 역할을 하는 것을 위젯(Widget)이라고 부른다.
- 뷰그룹 중에서 내부에 뷰들을 포함하고 잇으면서 그것들을 배치하는 역할을 레이아웃(Layout)이라고 부른다.
- 밑에는 버튼과 리니어 레이아웃의 계층도를 보여준다. 버튼은 위젯 중에서 자주 사용되며 리니어 레이아웃은 레이아웃 중에서 자주 사용되는 것이다.
- 계층도를 보면 뷰를 배치하는 레이아웃도 뷰를 상속받은 것이다. 즉, 뷰가 가지는 속성은 레이아웃에도 있다. 따라서 레이아웃(#1)안에 다른 레이아웃(#1-1, #1-2)이 들어갈 수 있다.
레이아웃은 레이아웃이 담고 있는 위젯이 어디에 배치되어야 할지 정해준다.
따라서 레이아웃 안에 레이아웃을 넣으면 각각의 레이아웃 안에서 버튼과 같은 위젯의 위치를 잡을 수 있다.
'🌠Development > Android Studio' 카테고리의 다른 글
[Android Studio] 스프링부트 api retrofit 연동 (0) | 2024.10.22 |
---|---|
[Android Studio] 패키지 구성 확인하기 (0) | 2024.04.12 |
[Android Studio] Intent(인텐트) (0) | 2024.04.12 |
[Android Studio] 내부 파일 살펴보기 (0) | 2024.04.12 |
[Android Studio] TextView 기본 사용법 (0) | 2024.04.12 |