일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 코틀린
- 부의추월차선
- 비동기
- 가치생산주의
- 멀티쓰레드
- JNI
- 부자의그릇
- 부자아빠가난한아빠
- 타이탄의도구
- NDK
- Android
- 동기
- AsyncTask
- 책리뷰
- java
- SharedPreferences
- 코루틴
- MVVM
- Coroutines
- 람다
- ViewGroup
- 인스턴스
- 기업가정신
- ViewModel
- 언스크립티드
- 안드로이드
- View
- 자청
- mutable
- Kotlin
- Today
- Total
타이탄의 도구들
[Android] View와 ViewGroup 본문
사전적 의미
view : 그림, 보기, 시야
group : 무리, 집단
고유명사적 의미(developers)
뷰는 유저가 보고 상호작용할 수 있는 것을 나타냅니다.
뷰그룹은 뷰와 다른 뷰그룹 객체의 레이아웃 구조를 정의하는 투명 컨테이너입니다.
뷰 클래스의 객체는 일반적으로 '위젯(widget)' 이라고 하고 여러 하위 클래스 중
하나가 될 수 있습니다.(예:Button 또는 TextView)
즉, 버튼, 텍스트뷰, 이미지뷰 등은 위젯이라는 말로도 불립니다.
뷰그룹 클래스의 객체는 종종 '레이아웃'이라고 부르고
(반드시는 아닙니다. 리스트뷰나 리사이클러뷰 같은 경우도 있습니다.)
다양한 레이아웃 구조를 제공하는 여러 유형 중 하나일 수 있습니다.
(예: 리니어 레이아웃, 컨스트레인트 레이아웃 등)
뷰(View)

뷰는 사용자의 터치, 키 입력과 상호작용합니다.
그림에서 보이듯이 이미지뷰, 텍스트뷰, 에딧텍스트, 버튼 모두 뷰(View) 클래스를 상속받고 있습니다.
화면에 보이는 요소들은 모두 반드시 뷰(View)를 상속받아야 합니다.
기존에 없는 모습과 기능을 가진 무언가를 만든다면 뷰(View)를 상속받아 구현해야합니다.
뷰(View)는 자신이 화면 어디에 그려져야 하는지에 대한 정보가 없습니다.
그래서 뷰(View)만으로 화면에 절대 나타낼 수 없습니다.
뷰를 화면에 배치하기 위해서는 반드시 무언가를 필요로 합니다.
바로 뷰그룹(ViewGroup)(혹은 뷰컨테이너(ViewContainer)) 입니다.
뷰그룹(ViewGroup)

그림에는 안나왔지만, 리사이클러뷰도 리스트뷰와 마찬가지로 뷰그룹을 상속받고 있습니다.
뷰가 다양하듯이 뷰그룹도 다양하며 각 고유한 배치 방식을 가집니다.
안드로이드에서 뷰를 배치하기 위해 뷰그룹을 만드려면 반드시 뷰그룹 클래스에게 상속받아야 합니다.
또한 뷰그룹 클래스 역시 뷰클래스에게 상속받고 있습니다.

뷰그룹 안에는 뷰만 배치가능합니다.
근데 왜 위 그림에서는 뷰그룹이 뷰그룹 안에 배치되어있지? 라는 의문이 생길 수 있습니다.
그 이유는 뷰그룹 또한 뷰클래스에게 상속받기 때문에 뷰로 다룰 수 있기 때문입니다.
'Dev Tools > Android' 카테고리의 다른 글
[Android] 구글 인앱결제 이슈 정리 (0) | 2022.05.30 |
---|---|
[Android] Kotlin 과 Jetpack에 대하여 (0) | 2022.05.29 |
[Android] SharedPreferences에 대하여 (0) | 2022.05.28 |
[Android] ListView, RecyclerView, Lazy lists (0) | 2022.05.28 |
[Android] NDK와 JNI의 차이 (0) | 2022.05.25 |