티스토리 뷰
Fragment
: 프레그먼트는 ‘조각’,’단편’이라는 뜻처럼 액티비티 내의 일부 영역을 차지하여 사용자 화면을 구성하는 역할을 한다
액티비티 내에서 독립적으로 동작할 수 있어서 , 한 번 만들어 두면 다른 액티비티에서도 사용할 수 있다.
=> 액티비티 내에서만 활동할 수 있는 작은 액티비티라고 생각하자!!
Fragment의 특징
1) Fragment는 자신만의 라이프 사이클 콜백 함수들을 가지고,자신을 포함한 Activity로부터 독립적으로 동작합니다.
2) Frament는 혼자 독자적으로 동작할 수 없으며 , Fragment 라이프 사이클은 자신이 포함된 Activity 라이프 사이클의 영향을 받는다.
ex. Activity가 pause되면 Activity내에 속한 모든 Fragment가 pause된다.
3 ) fragment는 자신이 속한 Activity와만 통신해야 하며,항상 자신이 속한 activity를 통해서 다른 fragment나 activity와 통신해야 한다
Fragment Life Cycle
: Fragment는 Activity 내에 있는 Fragment Manager에 의해 관리된다.
Fragment Life Cycle은 Activity의 Life Cycle이 변경됨에 따라 같이 변경된다.
Fragment Life Cycle 메소드
- onAttach(): fragment가 fragmentManager에 추가되었을 때 호출된다.
- onCreate(): fragment생성시 초기화 처리를 하도록 호출된다.
- onCreateView(): Fragment에 배치할 View를 생성해 달라고 요청하기 위해 호출된다.
- => 여기서 fragment에 배치할 view를 생성하여 넘겨준다.
- onViewCreated(): Fragment에 배치할 View가 생성되었을 때 호출한다.
- onActivityCreated(): activity의 onCreate가 완료된 다음 호출된다. 이때 Fragment의 View는 Activity에 추가되어 있는 상태가 된다.
- onStart() : fragment가 사용자에게 보여졌을 때 호출된다.
- onResume(): Fragment가 사용자에게 보여지고 Activity가 running상태이면 호출된다.
- onPause(): Fragment가 더 이상 resumed 상태가 아닐 때 호출된다.
- onStop : Fragment가 started상태가 아닐 때 호출된다.
- onDestroy : Fragment가 더 이상 사용되지 않을 때 호출된다.
- onDetach : Fragment가 FragmentManager에서 제거될 때 호출된다.
그 외 메소드
- getActivity : Fragment가 속한 Activity를 넘겨준다.
- getContext : Fragment가 속한 Context를 넘겨준다.
- getArgument : Fragment에서 Argument를 얻어온다.
- setArgument: Fragment에 Argument를 설정한다.
- getFragmentManager : 자신이 속한 FragmentManager를 얻어온다.
- getChildFragmentManager : Fragment내에 Fragment를 배치할 수 있는 FragmentManager를 얻어온다.
- getParentFragment : ChildfragmentManager에 추가된 경우 Parent Fragment를 얻는다.
- getView : onCreateView에서 설정된 View를 얻어온다.
Fragment Manager
Fragment Manager는 Activity내에서 Fragment를 관리하기 위해 사용된다. Activity에서 getFragmentManager를 통해 얻을 수 있다. 뿐만 아니라 FragmentTransction을 얻어오거나 , BackStack을 관리하거나 Fragment의 상태를 저장 또는 복원하는 기능을 제공한다.
FragmentTransaction
: Fragment의 연산의 집합을 나타내는 class
Fragment Transaction은 FragmentManager에 의하여 하나의 연산으로 다루어 진다.
FragmentTransaction에 여러 개의 연산(add, replace, hide,show 등)이 들어있는 경우 FragmentManager에 의해
한번에 처리되며 분리되어 다루어지지 않음.
- Add: fragment를 activity화면에 추가
- Remove: fragment를 activity 화면에서 제거
- replace: Activity화면의 container위치에 있는 View를 제거하고 fragment 배치
- Attach: View를 생성하여 Fragment에 배치 (onCreateView가 호출)
- Detach: fragment의 view를 fragment에서 제거함.
- show(): Fragment의 view를 show시킴.
'Android' 카테고리의 다른 글
콜백(Callback)과 리스너(Listener) (0) | 2021.09.03 |
---|---|
Fragment 사용방법 (0) | 2021.09.03 |
Recycler View (0) | 2021.09.03 |
inflation (0) | 2021.09.03 |
View 클래스 계층 (0) | 2021.09.03 |