본문 바로가기

Android/note

[android] View

[ 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(객체들의 집합)이다.

출처 : https://ko.wikipedia.org/wiki/컴포지트_패턴 / Doit 안드로이드 앱 프로그래밍

 

 

< 참고 >

Doit 안드로이드 앱 프로그래밍

https://jdm.kr/blog/228