Skip to content

Fragment

대환임 edited this page Oct 9, 2022 · 2 revisions

https://developer.android.com/guide/components/fragments?hl=ko

사용자의 UI 를 구성하는 Component 로, 여러 특징을 가지고있다.

  • UI 재사용성
    • 여러 Activity 에서 공유해 사용
  • 여러 display 에 맞춘 UI 구성

Fragment 는 자체적인 생명주기를 갖는다. 항상 Activity 내에서 호스팅되어야하며, Activity 의 생명주기에 직접적인 영향을 받는다.

  • Activity 가 일시정지가 된다면, 그 안의 모든 Fragment 역시 일시정지됨 (소멸도 마찬가지)
  • Activity 가 실행 중인 동안, 각 Fragment들을 개별적으로 조작이 가능하다. (각자 독립적인 생명주기를 갖기 때문)

Fragment Manager

Fragment 의 생명주기를 관리한다.

  • Fragment back stack 을 관리한다.

back stack

유저와의 상호작용에 의해 발생되는 FragmentTransaction 을 적재한다.

Fragment Transaction

Fragment 의 추가, 변경, 삭제하는 작업으로, 다수의 작업을 하나로 묶어 처리할 수 있다.

addToBackStack()

methods

onCreateView()

onCreate(Bundle)onViewCreated(View, Bundle) 사이에서 호출되어지는 메서드로, 해당 Fragment 의 초기화 블럭 역할을 담당한다.

스크린샷 2022-10-09 오후 8 59 26

performCreateView(LayoutInflater, ViewGroup, Bundle) 에서 호출되어진다. 스크린샷 2022-10-09 오후 9 02 13

현재는 Fragment 의 View 를 생성하는 단계이므로, Fragment 의 상태를 관리하는 FragmentStateManager 의 관리하에 들어간다.

  • ensureInflatedView()
  • moveToExpectedState()
스크린샷 2022-10-09 오후 9 44 41

Activity vs Fragment

Clone this wiki locally