[์๋๋ก์ด๋] FragmentManager
๐ 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