타이탄의 도구들

[Android] View와 ViewGroup 본문

Dev Tools/Android

[Android] View와 ViewGroup

Titan04 2022. 5. 27. 04:41
728x90

사전적 의미

view : 그림, 보기, 시야

group : 무리, 집단

고유명사적 의미(developers)

뷰는 유저가 보고 상호작용할 수 있는 것을 나타냅니다.

뷰그룹은 뷰와 다른 뷰그룹 객체의 레이아웃 구조를 정의하는 투명 컨테이너입니다.

뷰 클래스의 객체는 일반적으로 '위젯(widget)' 이라고 하고 여러 하위 클래스 중

하나가 될 수 있습니다.(예:Button 또는 TextView)

즉, 버튼, 텍스트뷰, 이미지뷰 등은 위젯이라는 말로도 불립니다.

 

뷰그룹 클래스의 객체는 종종 '레이아웃'이라고 부르고

(반드시는 아닙니다. 리스트뷰나 리사이클러뷰 같은 경우도 있습니다.)

다양한 레이아웃 구조를 제공하는 여러 유형 중 하나일 수 있습니다.

(예: 리니어 레이아웃, 컨스트레인트 레이아웃 등)

뷰(View)

 

뷰 클래스 상속도

 

뷰는 사용자의 터치, 키 입력과 상호작용합니다.

그림에서 보이듯이 이미지뷰, 텍스트뷰, 에딧텍스트, 버튼 모두 뷰(View) 클래스를 상속받고 있습니다.

화면에 보이는 요소들은 모두 반드시 뷰(View)를 상속받아야 합니다.

기존에 없는 모습과 기능을 가진 무언가를 만든다면 뷰(View)를 상속받아 구현해야합니다.

뷰(View)는 자신이 화면 어디에 그려져야 하는지에 대한 정보가 없습니다.

그래서 뷰(View)만으로 화면에 절대 나타낼 수 없습니다.

뷰를 화면에 배치하기 위해서는 반드시 무언가를 필요로 합니다.

바로 뷰그룹(ViewGroup)(혹은 뷰컨테이너(ViewContainer)) 입니다.

뷰그룹(ViewGroup)

뷰그룹 클래스 상속도

 

그림에는 안나왔지만, 리사이클러뷰도 리스트뷰와 마찬가지로 뷰그룹을 상속받고 있습니다.

뷰가 다양하듯이 뷰그룹도 다양하며 각 고유한 배치 방식을 가집니다.

안드로이드에서 뷰를 배치하기 위해 뷰그룹을 만드려면 반드시 뷰그룹 클래스에게 상속받아야 합니다.

또한 뷰그룹 클래스 역시 뷰클래스에게 상속받고 있습니다.

 

뷰그룹 안에는 뷰만 배치가능합니다.

근데 왜 위 그림에서는 뷰그룹이 뷰그룹 안에 배치되어있지? 라는 의문이 생길 수 있습니다.

그 이유는 뷰그룹 또한 뷰클래스에게 상속받기 때문에 뷰로 다룰 수 있기 때문입니다.

728x90
Comments