이번 포스팅은 Fragment에 대하여 알아보도록 하겠습니다.
Fragment에 대하여...첫번째 이야기
소화면의 스마트 폰용으로 작성한 앱을 대화면의 태블릿에서 실행하면 공간이 너무 많이 낭비되어 썰렁해 보이며 넓은 화면의 장점을 사용할 수가 없습니다.
그래서 태블릿같은 대화면에서는 화면을 분할하여 사용자에게 보여주면 대화면의 이점을 살릴 수가 있습니다.
그래서 화면을 분할하는데 이용되는 것이 바로 Fragment 입니다.
1. 먼저 Fragment의 특징을 알아보도록 하겠습니다.
- Fragment는 Activity에 배치되어 화면의 한 부분을 정의합니다.
- Android 3.0 부터 지원됩니다.
- 하나의 Activity는 여러개의 Fragment를 가질 수 있습니다.
- 독립적인 모듈이고 Life Cycle을 가지지만, Activity의 Life Cycle 변화에따라 Fragment의 Life Cycle이 변경됩니다.
- layout xml에서 view와 함께 배치할 수 있습니다.
- 서로 다른 Activity에서 동일한 Fragment class를 이용할 수 있습니다.
- 여러 Activity에서 재사용할 수 있습니다.
2. Fragment의 Life Cycle
- Fragment는 Activity 내에 있는 FragmentManager에 의해 관리됩니다.
- Fragment의 Life Cycle은 Activity의 Life Cycle이 변경됨에 따라 같이 변경됩니다.
- Fragment의 Life Cycle 과 FragmentManager의 상태와 비교하여 알아보도록 하겠습니다.
- Fragment의 Life Cycle은 Activity의 Life Cycle과 유사하지만 몇 가지 추가된 콜백이 더 있습니다.
많은 콜백 중에 onCreate, onCreateView, onPause 콜백은 거의 필수적으로 구현해야 하며 나머지는 필요할 때만 구현하면 됩니다.
- Activity가 생성될 대 Fragment의 다음 콜백이 순서대로 호출되며 여기서 프래그먼트를 초기화 합니다.
- onAttach ~ Activity에 Fragment가 처음 부착될 때 호출됩니다.
- onCreate ~ Fragment가 생성될 때 시스템에서 호출됩니다. 이 단계에서는 Host Activity(Fragment를 호출하는 Activity)도 아직 초기화중인 상태이며 따라서 Activity의 컨트롤을 안전하게 참조할 수 없습니다.
Activity가 완전히 초기화된 시점이 필요하면 onActivityCreated 콜백을 사용해야 합니다.
- onCreateView ~ 시스템은 Fragment가 자신의 사용자 인터페이스를 처음으로 그릴 시간이 되면 이것을 호출합니다. Fragment에 맞는 UI를 그리려면 메서드에서 View
를 반환해야 합니다. 이 단계에서 Fragment는 자신의 Layout을 생성한 후 Root View를 리턴합니다. 이 메서드는 Fragment 레이아웃의 루트입니다. Fragment가 UI를 제공하지 않는 경우 null을 반환하면 됩니다.
- onPause~ 시스템이 이 메서드를 호출하는 것은 사용자가 Fragment를 떠난다는 것을 나타내는 첫 번째 신호입니다(다만 항상 Fragment가 소멸 중이라는 것을 의미하지는 않습니다). 일반적으로 여기에서 현재 사용자 세션을 넘어서 지속되어야 하는 변경 사항을 저장합니다(사용자가 돌아오지 않을 수 있기 때문입니다).
'Development > Android' 카테고리의 다른 글
[Android] SwipeRefreshLayout를 활용한 예제 (2) | 2016.05.19 |
---|---|
[Android] Android Library Project 만들어서 Jar 파일로 추출하기 (0) | 2016.05.12 |
[Android] Android Build 전 과정 (0) | 2016.04.22 |
[Android] Marshmello(Android OS 6.0) 특징 (0) | 2016.04.22 |
[Android] Lollipop (Android OS 5.0) 특징 (0) | 2016.04.22 |