[ View ]
1. 일반적으로 컨트롤이나 위젯으로 불리는 UI 구성요소
=> 사용자의 눈에 보이는 화면의 구성요소
2. 뷰는 위젯과 레이아웃으로 구별된다.
- 위젯 : 일반적인 컨트롤의 역할을 하는 것
ex) Button, EditText, ImageView 등
- 레이아웃 : 뷰그룹 중에서 내부에 뷰들을 포함하고 있으면서 그것들을 배치하는 역할을 하는 것
[ ViewGroup ]
1. 뷰를 여러 개 포함하고 있는 것 => 뷰+뷰+뷰+뷰 = 뷰그룹
2. 뷰그룹안에서 뷰의 위치를 지정할 수 있다.
ex) 리니어레이아웃에서 버튼, 텍스트에디트를 배치하는 것 처럼!
3. 뷰그룹안에는 또 다른 뷰그룹이 들어갈 수 있다.
ex) Constraint 레이아웃안에 Linear 레이아웃을 넣을 수 있는 것 처럼
4. 뷰그룹은 뷰를 여러개 담고 있는 그릇과 같아서 뷰와는 다르다고 할 수 있다.
5. 뷰와 뷰그룹의 관계는 컴포지트 패턴을 사용하여 만들어진 것이다.
[ 컴포지트 패턴 ]
1. 컴포지트 패턴은 단일 객체 또는 객체들의 집합을 같은 방법으로 취급하는 것을 말한다.
=> 뷰(단일 객체)와 뷰그룹(객체들의 집합)을 같은 방법으로 사용하는 것 처럼
2. 컴포지트 : 일부 또는 그룹을 표현하는 객체들을 트리 구조로 구성한다.
3. file과 directory를 떠올리면 쉽다!
=> file과 directory는 트리 구조로 되어 있으며 file(단일 객체)와 directory(객체들의 집합)이다.
< 참고 >
Doit 안드로이드 앱 프로그래밍
'Android > note' 카테고리의 다른 글
[android] 카카오 지도 API가 화면에 보이지 않음 (0) | 2021.11.28 |
---|---|
[android] Event Bus (0) | 2021.08.21 |
[android] attribute android:usesCleartextTraffic not found. (0) | 2021.08.14 |
[android] 서비스 값을 전달하고 받아오지 못함 (0) | 2021.07.23 |
새로운 Activity 연결하기 (0) | 2020.09.16 |