티스토리 뷰

Computer/Android

[Android] View, ViewGroup

jamezc 2020. 2. 24. 00:19

 

 

뷰(View)

가장 많이 사용되는 네가지 뷰의 모습을 보자.

- TextView 텍스트를 출력하는 뷰

- Button 버튼을 터치하면 실제로 버튼이 눌린 효과를 보여주기도 한다.

-EditText 사용자가 직접 텍스트를 입력할 수 있는 뷰

-ImageView 원하는 이미지를 출력하는 뷰

 뷰(View)는 사용자의 터치, 키 입력과 상호작용한다.

 

뷰 클래스 상속도

 

그림에서 보이듯이 ImageView, TextView, EditText, Button 모두 뷰(View) 클래스를 상속받고 있다.

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

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

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

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

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

그것이 바로 뷰그룹(ViewGroup) 혹은 뷰컨테이너(Container)이다.

 

 

뷰그룹(ViewGroup)

 

뷰그룹 클래스 상속도

 

뷰(View)가 다양하듯이 뷰그룹(ViewGroup)도 다양하며 각 고유한 배치 방식을 가진다.

대표적으로 LinearLayout, RelativeLayout, FrameLayout 이 있다.

 

뷰그룹에 의해 배치된 자식 뷰그룹

 

안드로이드에서 뷰(View)를 배치하기 위해 뷰그룹(ViewGroup)을 만드려면 반드시 뷰그룹(ViewGroup)을 상속받아야 한다.

뷰그룹(ViewGroup) 역시 뷰(View)클래스를 상속받고 있다.

뷰그룹(ViewGroup) 안에 뷰그룹(ViewGroup), 앱을 만들면서 이런 경우가 아주 흔하다.

 

뷰와 뷰그룹의 관계

 

 

그림에서 보이듯이 뷰그룹(ViewGroup)은 뷰(View)만 배치가능하며

뷰그룹(ViewGroup)조차 뷰(View)로 다룬다.

그래서 자식 뷰그룹(ViewGroup)를 배치할 수 있다.

안드로이드 화면은 오직 뷰(View)만으로 구성되어 있다.

즉, 화면과 관련해서는 뷰(View)이외에는 더 이상 배울 것이 없다.

 

 

 

댓글

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음



Total
Today
Yesterday
최근에 달린 댓글