불로구
안드로이드 스튜디오 - Fragment<프레그먼트> ( 개념편 ) 본문
프레그먼트란?
- 하나의 Activity에 스스로 모든 것을 표현하기는 힘들다
- 하나의 액티비티에 여러 개의 화면을 가지도록 만들기 위한 개념
- 즉, 하나의 Activity에서 프래그먼트를 통해 역할(화면)을 분할하는 것
- 프래그먼트는 Activity에 종속적이며 라이프 사이클이 존재한다.
프래그먼트의 생명주기
1. OnAttach()
- 프래그먼트가 Activity에 attach될 때 호출
- 인자로 context가 주어지며, 부모 액티비티에서 리스터 인터페이스를 상속받으면 형 변환을 통해 가져올 수 있다.
2. OnCreate()
- UI를 제외한 리소스들을 초기화
- 일반적인 OnCreate()
3. OnCreateView()
- 레이아웃들을 inflate하며, view객체를 얻을 수 있다.
- 일반적으로 Activity에서는 OnCreate()에서 Button, Text들을 초기화했지만, 프래그먼트는 OnCreateView()에서 초기화
4. OnActivityCreated()
- 프래그먼트에서 OnCreateVeiw를 마친 후 Activity의 OnCreate()가 호출 후 호출되는 메서드
- Activity와 Fragment의 뷰가 모두 생성된 상태이므로 View를 변경하는 작업이 가능
5. OnStart()
- 사용자에게 Fragment가 보여지도록 한다.
6. OnResume()
- 사용자와 상호작용 하는 부분
7. OnPause(), OnStop()
- 프래그먼트의 부모 액티비티가 아닌, 다른 액티비티가 포그라운드로 나오게 되면 OnPause()
- 다른 액티비티에 의해 화면을 완전히 가리게 되면 OnStop()
8. OnDestoryView()
- 프래그먼트와 관련된 View 제거
9. OnDestory()
- OnDestoryView에서 View를 제거 후 호출
10. OnDetach()
- 프래그먼트가 액티비티로부터 해제
프래그먼트를 적용한 Activity 실행 로그 화면
( F가 붙은 것은 프래그먼트 , 붙지 않느것은 Activity )
2021-04-12 02:01:48.942 6939-6939/com.example.aop_part2.fragment D/life_Cycle: F onAttach
2021-04-12 02:01:48.942 6939-6939/com.example.aop_part2.fragment D/life_Cycle: F onCreate
2021-04-12 02:01:48.942 6939-6939/com.example.aop_part2.fragment D/life_Cycle: F onCreateView
2021-04-12 02:01:48.944 6939-6939/com.example.aop_part2.fragment D/life_Cycle: F onViewCreated
2021-04-12 02:01:48.944 6939-6939/com.example.aop_part2.fragment D/life_Cycle: onCreate
2021-04-12 02:01:48.947 6939-6939/com.example.aop_part2.fragment D/life_Cycle: F onActivityCreated
2021-04-12 02:01:48.948 6939-6939/com.example.aop_part2.fragment D/life_Cycle: F onStart
2021-04-12 02:01:48.948 6939-6939/com.example.aop_part2.fragment D/life_Cycle: onStart
2021-04-12 02:01:48.949 6939-6939/com.example.aop_part2.fragment D/life_Cycle: onResume
2021-04-12 02:01:48.949 6939-6939/com.example.aop_part2.fragment D/life_Cycle: F onResume
'프로그래밍 > 코틀린 안드로이드' 카테고리의 다른 글
안드로이드 스튜디오 - Fragment에서 Activity로 데이터 전송 (0) | 2021.04.13 |
---|---|
안드로이드 스튜디오 - Fragment<프레그먼트> ( 실습편1 ) (0) | 2021.04.12 |
안드로이드(Kotlin) - LiveData (0) | 2021.04.06 |
안드로이드 스튜디오 - 다이어리 만들기 (0) | 2021.03.28 |
안드로이드 스튜디오 - px , dp , sp단위 (0) | 2021.03.25 |