*뷰(View)
뷰는 일반적으로 컨트롤이나 위젯으로 불리는 UI구성 요소이다. 즉, 사용자의 눈에 보이는 화면의 구성 요소들이 뷰라고 할 수 있다. 또한 이러한 뷰를 여러 개 포함하고 있는 것을 뷰그룹이라고하는데, 이 뷰그룹은 뷰그룹 안에서 뷰의 위치를 지정할 수 있다. 뷰그룹은 여러 개의 뷰를 담고 있는 그릇과 같아서 뷰와는 다른 것이라고 할 수 있으며, 또 다른 뷰그룹을 뷰그룹 안에 넣고 다른 뷰ㅜ와 동일하게 다루도록 만들 수도 있다. 뷰그룹 안에 또다른 뷰그룹을 넣으면 여러가지 장점이 있으며, 이 때문에 뷰그룹은 뷰를 상속하여 뷰그룹을 뷰처럼 다룰 수 있다.
뷰그룹과 뷰의 관계는 디자인 패턴중 컴포지트 패턴을 사용하여 만들어졌으며, 컴포지트 패턴으로 만들어진 뷰그룹은 뛰어난 확장성을 가진다. 때문에 뷰그룹과 뷰의 관계는 안드로이드의 UI를 매우 자연스럽게 구성할 수 있다.
그 밖에도 뷰는 다른 뷰의 속성을 상속하여 상속받은 뷰의 특성을 그대로 가질 수 있다. 예를 들면, 버튼은 텍스트뷰를 상속해서 만들었기 때문에 텍스트뷰의 속성을 그대로 가지고 있다. 때문에 프로젝트에서 기본으로 들고있는 텍스트뷰는 XML레이아웃 파일을 열어 <TextView>태그명을 단순히 <Button>으로 바꾸기만 하여도 버튼으로 변경된다.
이러한 특성으로 인해 가단하게 이름을 바꾸거나 복사 및 붙여넣기만으로도 쉽게 텍스트뷰를 버튼으로 바꾸거나 새로 추가할 수 있다.
*뷰의 구분
안드로이드는 화면을 구성하는 뷰그룹과 뷰의 역할을 구분하기 위해 뷰의 종류에 따라 다른 이름으로 부르기도 한다. 뷰 중에서 일반적인 컨트롤의 역할을 하는 것을 위젯이라고 하며, 뷰그룹 중에서 내부에 뷰들을 포함하고 있으면서 그것들을 배치하는 역할을 하는 것을 레이아웃이라고 한다.
좀더 디테일하게 들어가면 화면구성요소는 뷰, 사용자눈에 보이는 컨트롤 역할을 하는 뷰는 위젯, 뷰를 담고있는 그릇은 뷰그룹, 뷰그룹 안에 뷰를 배치하는 것은 레이아웃이다.
뷰로 정의된 클래스의 수는 굉장히 많다. 또한 뷰로 정의된 각각의 클래스에 정의된 속성과 메서드도 아주 많다. 따라서 클래스를 사용하기 위해 클래스에 정의된 속성과 메서드를 외우기보단 뷰로 정의된 클래스의 기초 속성이나 메서드를 기억했다가 그것들을 중심으로 활용하는 것이 좋다.
뷰그룹 또한 뷰들의 배치에 사용되는 대표적인 레이아웃들을 살펴보면 화면 배치에 필요한 내용들을 쉽게 사용할 수 있다.
'Android' 카테고리의 다른 글
Android / AndroidX gradle 모음 (0) | 2020.07.15 |
---|---|
Android / 레이아웃의 종류 (0) | 2020.07.14 |
Android / 안드로이드 스튜디오 개발환경셋팅 (0) | 2020.07.08 |
Android / 안드로이드란? (0) | 2020.07.07 |
Android / ThreeTenABP 마스터하기 (0) | 2020.06.18 |