📌 FragmentManager
1) FragmentManager 란?
- Activity와 Fragment의 중간에서 서로를 이어주는 역할을 하는 것
2) FragmentManager 의 역할
🔻 fragment transaction
- fragment 추가, 삭제, 교체 등의 작업 수행할 수 있도록 하고, 행해진 transaction의 상태를 fragment 백스택에 저장할 수 있도록 함
🔻 Activity와의 통신
- 단일 fragment에 대해 세부적인 작업 가능(fragment 내의 구성 요소들 하나하나에 접급할 수 있도록 함)
- Activity에서 특정 이벤트가 발생했을 때, fragment에서 적절한 동작을 할 수 있도록 함
3) Fragment 에서 접근
- 프래그먼트는 하나 이상의 프래그먼트를 담을 수 있다.
- 프래그먼트 내에서
▶️ 자식 프래그먼트를 관리하는 FragmentManager에 접근하기 위해서는
getChildFragmentManager() 사용
▶️ 자식 프래그먼트에서 부모의 FragmentManager에 접근하기 위해서는
getParentFragmentManager() 사용
▶️ 왼쪽 Example1의 host fragment는 2개의 자식 프래그먼트를 담고 있고,
▶️ 오른쪽 Example2의 host fragment는 1개의 자식 프래그먼트를 담고 있다.( 예를 들면, 프래그먼트 내에서 viewpager2를 사용하는 경우)
📌 각 호스트는 자식 프래그먼트를 관리하는 FragmentManager을 가지고 있다. 여기에 접근함으로써 사용자에게 보여지는 프래그먼트를 관리(조작)할 수 있다.
▶️ 가장 바깥에 위치하는 Host Activity(Fragment Activity)는 자식 프래그먼트인 Home과 Profile 프래그먼트를 관리하기 위해 supportFragmentManager로 fragmentManager에 접근
▶️ Home 또는 Profile 프래그먼트인 Host Fragment는 자식 프래그먼트(Child Fragment(s))를 관리하기 위해 childFragmentManager 메서드 사용
▶️ 자신들을 관리하는 FragmentManager에 접근하기 위해서는 parentFragmentManager 메서드 사용
FragmentManager를 부르는 메서드는
1) 현재 이것을 부르는 위치가 어디인지 : Activity인지 Fragment인지 등
2) 어떤 FragmentManager를 부르는지 : 자식인지 부모인지
에 따라 다르다.
참고 사이트 : https://velog.io/@ejjjang0414/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-Fragment-manager
[안드로이드] FragmentManager?
앱 개발시 거의 반드시 사용하는 FragmentManager 가 무슨 일을 하는지, 어디서 어떻게 사용하면 되는지 알아봅시다.
velog.io
'Android' 카테고리의 다른 글
[안드로이드/kotlin] SearchView 관련 오류 (0) | 2023.02.26 |
---|---|
[Android/Kotlin] imagebutton 이미지 깨짐 오류 (0) | 2023.02.24 |
[Android/Kotlin] match parent 와 wrap content 차이 (0) | 2023.02.24 |