티스토리 뷰
[ ViewPager #3 ] FragmentPagerAdapter vs FragmentStatePagerAdapter
녹색꼬맹이 2020. 3. 25. 15:39Fragment 를 사용 하는 PagerAdpater 의 종류 FragmentPagerAdapter, FragmentStatePagerAdapter
Fragment LifeCycle
[만들어질 때]
onAttach → onCreate → onCreateView → onViewCreated → onActivityCreated → onResume
[없어질 때]
onPause → onDestroyView → onDestroy → onDetach
각각 10 페이지를 가지고 있는 FragmentPagerAdapter 와 FragmentStatePagerAdapter 의 Log를 통해 LifeCycler 확인함.
FragmentPagerAdapter ( 앞에 [0] 은 페이지 번호 )
FragmentStatePagerAdapter ( 앞에 [0] 은 페이지 번호 )
결과적으로 ( 여기서부터 개인적인 소견 )
FragmentPagerAdapter는 View까지만 삭제하고, FragmentManager가 Fragment는 들고 있다고 생각 할 수 있음. ( View 만 다시 그리는 느낌? )
FragmentStatePagerAdapter
FragmentStatePagerAdapter는 View 뿐만 아니라 Fragment 자체를 날려 버림.
어떤 것이 더 좋다라는 것 보다는
사용 용도에 따라 이 둘의 퍼포먼스는 달라질 것으로 보인다.
간단하게 예를들면 Fragment 자체에 로드가 많을 경우 ( 부하가 클 경우 ? ) Fragment 자체를 날려 버리면 Fragment 를 생성하고 View를 그려야 하는 부하가 생길 수도 있고,
앱 자체는 가벼워 지겠지만, 순간 적인 부하가 크지 않을까 ..
.
.
.
.
.
근데 ??????
만약에 FragmentPagerAdapter 에서
destroyItem 으로 Fragment 를 삭제 해주는 로직을 추가하면 어떤 차이가 있는가 ?
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
super.destroyItem(container, position, object);
IndexFragment cf = (IndexFragment) object;
mFragMan.beginTransaction().remove(cf).commit(); // FragmentManager
}
이렇게 하면 ? FragmentStatePagerAdapter 와 똑같아 진다?
딱 보아하니 FragmentPagerAdapter 의 문제점이라고 생각하는 사람들이 저렇게 destoryItem 을 Override 하여 Fragment 를 삭제하는 로직을 사용 하다가
FragmentStatePagerAdapter 가 위에 있는 로직을 대체 하여 편하게 사용하라고 만들어 준 것인가 ..
Sample Example Github
'Android > ViewPager' 카테고리의 다른 글
[ ViewPager #6 ] Dot Indicator ( Simple ver ) (0) | 2024.02.28 |
---|---|
[ ViewPager #5 ] Carousel Effect ViewPager ( Animation ) (0) | 2020.03.26 |
[ ViewPager #4 ] Auto Scroll & Slow Scroll (0) | 2020.03.26 |
[ ViewPager #2 ] WrapContent ViewPager (0) | 2019.12.17 |
- Total
- Today
- Yesterday
- RandomColor
- widget onupdate
- Fragment data
- widget glide
- 랜덤컬러
- 안드로이드 플립 대응
- flutter web
- 프래그먼트 데이터 저장
- widget 만들기
- 가중치랜덤
- Dot indicator
- 폴더블 상태 유지
- 갤럭시 워치
- 쏘렌토 하이브리드
- 역시 키크론이네
- widget 이미지 로딩
- 웨어러블
- aos img url bitmap
- Foldable Event
- widget onreceive
- android widget 만들기
- 풀배열 키보드
- 폴더블 이벤트 받기
- 쏘렌토 하이브리드 시그니처
- wear os
- 맥 전용
- Android
- 폰과 워치 페어링
- 안드로이드 폴드 대응
- Android Wear Os
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |