View
안드로이드 UI를 구성하기 위해 사용되는 class.
XML 상으로 구성했던 UI 요소들의 부모객체가 바로 View 인 것이다.
View는 드로잉, 이벤트 처리를 담당하는 UI 구성요소의 기본 클래스이다. View를 상속받아 구현하는 TextView, Button 등 특수 목적을가지고 있는 View를 위젯 또는 컴포넌트라고 부르기도 한다.
LifeCycle 단계
안드로이드에서 View(View의 생명주기) 는 액티비티나 프래그먼트에 의존해서 동작한다.
즉, 액티비티나 프래그먼트의 생명주기에 따라 View도 생성되고, 업데이트되고, 사라지는 과정을 거치는 것이다.
1. constructor()
💡 View의 생성자로. 모든 뷰는 생성자에 의해 생명주기가 시작됨.
- addView() 메소드를 갖게 됨
2. onAttachedToWindow()
💡 뷰가 화면(Window)에 추가될 때 호출됨
- View가 부모 레이아웃에 추가되면 실행됨
- 예를 들어, 액티비티가 setContentView()를 실행하면 View가 화면에 붙고 이 메서드가 호출
3. onMeasure()
💡 뷰의 크기(Width, Height)를 결정하는 단계
- 부모 레이아웃이 자식 뷰(View)에게 "너 얼마나 큰지 정해!"라고 요청하는 단계
- 이 과정에서 View는 자신의 크기를 계산한다.
4. onLayout()
💡 뷰의 위치를 결정하는 단계
- 뷰의 위치(X, Y 좌표)를 결정하는 과정
- 부모가 "너 여기 있어야 해!"라고 알려주면, View는 그 위치에 배치됨
5. onDraw()
💡 뷰가 화면에 그려지는 단계
- 뷰의 모양을 그리고, 배경, 텍스트, 이미지 등을 표시함
- Canvas 객체를 사용해서 직접 커스텀 뷰를 그릴 수도 있음
6. onDetachedFromWindow()
💡 뷰가 화면에서 제거될 때 호출됨
- 뷰가 화면에서 사라질 때 실행됨
- 해당 단계에서 리소스 정리(쓰레드 중지, 리스너 해제 등)를 하면 된다.

View 생명주기 정리
1️⃣ onAttachedToWindow() → 뷰가 부모 레이아웃에 추가됨
2️⃣ onMeasure() → 뷰의 크기 결정
3️⃣ onLayout() → 뷰의 위치 결정
4️⃣ onDraw() → 뷰가 화면에 그려짐
5️⃣ onDetachedFromWindow() → 뷰가 화면에서 제거됨
택배에 비교해 보는 View 생명주기
onAttachedToWindow() → 택배가 창고(부모 레이아웃)에 도착
onMeasure() → 택배 크기를 측정
onLayout() → 창고 안에서 택배를 적절한 위치에 배치
onDraw() → 박스에 포장지(내용물)를 그림
onDetachedFromWindow() → 택배가 창고에서 나감 (화면에서 사라짐)
결론
View는 액티비티나 프래그먼트가 시작될 때 생성되고, 화면에 표시됨
View의 크기, 위치를 정하고, 화면에 그리는 과정이 있음
View가 더 이상 필요 없을 때 정리됨
'개발 > Android' 카테고리의 다른 글
| [Android] LayoutInflater 정리 (6) | 2025.03.10 |
|---|---|
| [Android] 화면 회전 시 onDestroy 안되도록 (0) | 2025.03.06 |
| [Android] Service LifeCycle 쉽게! (0) | 2025.03.04 |
| [Android] Fragment LifeCycle 쉽게 정리 (0) | 2025.03.02 |
| [Android] Activity 생명주기 쉽게 이해하자 (0) | 2025.02.28 |