Fragment??
프래그먼트는 앱 UI의 재사용을 위한 개념이다.
![](https://velog.velcdn.com/images/neoneoneo/post/b341ad16-14f8-4611-b333-279d46c815fe/image.png)
크기가 다른 기기에서, 또는 하나의 기기 안에서 화면의 크기가 달라질 때 이 프래그먼트를 사용하여 UI를 재사용할 수 있게 된다.
Fragment LifeCycle
프래그먼트도 액티비티와 비슷하게 수명 주기라는 것이 있다.
![](https://velog.velcdn.com/images/neoneoneo/post/f173d818-fea0-4b0c-95ea-1c4b81b092e3/image.png)
프래그먼트 수명 주기와 함께 View의 수명 주기도 함께 알아둔다.
상태
상태 전환에는 프래그먼트가 Back Stack에 살아 있는 상향과 Back Stack에서 사라진 하향 상태 전환이 있다.
CREATED 상태
- 프래그먼트가 FragmentManager에 추가되고 onAttach() 메서드가 호출된 상태이다.
- 아직 뷰가 생성되지는 않은 상태이다.
onCreate()
- 프래그먼트가 생성될 때 호출된다.
- 프래그먼트의 초기 설정을 처리한다.
onCreateView()
- View를 그리기 위해 호출된다.
- View 수명 주기에서 INITIALIZED 상태로 진입한다.
- 프래그먼트의 UI를 구성하고 반환해야 하는 곳이다.
onViewCreated()
- onCreateView에서 View를 받아온다.
- 이 부분에서 View의 초기값을 설정한다.
onViewStateRestored()
- View 각 요소의 상태값을 체크한다.
- View 수명 주기에서 CREATED 상태로 진입한다.
onActivityCreated()
- 액티비티의 onCreate()가 완료되고나면 호출된다.
- 액티비티와 프래그먼트 간의 상호 작용이 가능한 시점이다.
STARTED 상태
onStart()
- 프래그먼트가 사용자에게 표시되기 전에 호출된다.
- View 수명 주기에서 STARTED 상태로 진입한다.
RESUMED 상태
onResume()
- 프래그먼트가 활성 상태가 되어 사용자와 상호 작용할 수 있는 상태가 됩니다.
- View 수명 주기에서 RESUMED 상태로 진입한다.
[하향] STARTED 상태
onPause()
- 다른 화면 요소가 사용자에게 표시되기 전에 호출된다.
- 이 단계에서 프래그먼트는 일시 중지되지만 완전히 종료되지는 않는다.
- View 수명 주기에서 CREATED 상태로 진입한다.
[하향] CREATED 상태
onStop()
- 프래그먼트가 더 이상 사용자에게 표시되지 않고 화면에서 완전히 사라지기 전에 호출된다.
onDestroyView()
- onCreateView()에서 생성된 UI가 소멸되는 단계이다.
- View 수명 주기에서 DESTROYED 상태로 진입한다.
onDestroy()
- 프래그먼트가 소멸될 때 호출된다.
- 이 메서드에서 필요한 리소스의 해제 및 정리 작업을 처리하면 된다.
[하향] DESTROYED
onDetach()
- 프래그먼트가 액티비티에서 분리될 때 호출된다.
- 이 시점에서 프래그먼트는 액티비티와의 연결이 끊어진다.
reference
공식 문서
준비된 개발자
Code wiht Joyce
[TIL-240328]