티스토리 뷰
[android] PagerAdapter에 대해서 (FragmentPagerAdapter와 FragmentStatePagerAdapter)
sulkun 2017. 8. 17. 14:10안녕하세요 오늘은 FragmentAdapter에 대해서 알아보겠습니다
1. Fragment를 사용하는adapter
사용설명 : http://android-developers.blogspot.com/2011/02/android-30-fragments-api.html
위에 영어로 되어있어서 좀 그렇긴한데 플래그먼트에 대해서 나온 이야기니 읽어보기 바란다.
Fragment는 Android 3.0 (허니콤)부터 추가된 기능이다.
Fragment를 사용하는 Adapter를 쓴다면 3.0 이전의 버전에서 개발하는 앱에서는 사용을 못하는 것인가? 결론부터 말하면 그렇지 않다.
ViewPager를 사용하기 위해 받은 Support Package에는 v4와 v13 2개의 라이브러리가 있다.
v4는 api 버전 4. 즉 1.6 도넛 부터 사용할 수 있게 만든 라이브러리 이다. 3.0 이전의 버전에서는 이 라이브러리를 통해서 FragmentPagerAdapter와
FragmentStatePagerAdapter를 사용할 수 있다.
2. FragmentPagerAdapter와 FragmentStatePagerAdapter
Fragment를 처리하는 PagerAdapter는 두 가지 Class가 존재한다. 하나는 FragmentPagerAdapter 이고 다른 하나는 FragmentStatePagerAdapter이다.
FragmentPagerAdapter의 경우, 사용자가 ViewPager에서 좌/우로 스크롤(플링)하여 화면 전환을 하여 다음 Fragment가 표시되면 이전 Fragment를 메모리 상에
저장해 만일 사용자가 화면을 반대로 이동하면 메모리 상에 저장되어있는 Fragment를 사용하게된다.
2번째 FragmentStatePagerAdapter는 ViewPager의 페이지를 이동하여 다음 Fragment가 표시되면 이전 Fragment는 메모리 상에서 제거된다.
사용자가 화면을 다시 반대로 전환하면 기존에 저장된 상태값(state)을 기반으로 재생성합니다.
그러므로 페이지 수가 정해져 있고 그 수가 많지 않다면 FragmentPagerAdapter를 사용하는 편이 좋고 반대로 페이지 수를 알 수 없거나 많다면
FragmentStatePagerAdapter를 사용하는 것이 좋다.
like miller 님의 블로그에서 가져온 정보입니다.
http://blog.daum.net/mailss/19
http://www.hardcopyworld.com/ngine/android/index.php/archives/164
'android' 카테고리의 다른 글
[android] onCreateWindow not working (2) | 2017.10.17 |
---|---|
[android] retrofit 사용방법 (1) | 2017.08.17 |
[android] webview scrollbar not visiable (0) | 2017.07.05 |
[android] java.lang.IllegalStateException: Unable to create layer for WebView (0) | 2017.06.30 |
[android] 인터넷 연결 체크, ping test, WIFI 체크 (0) | 2017.06.26 |
- Total
- Today
- Yesterday
- Swift textField max length
- Swift label underline storyboard
- Sandbox account logout
- Sandbox test login on
- Sandbox account sign out
- How to get version swift
- wwdc21 actor
- 샤브샤브
- SceneDelegate error
- Swift button underline programmatically
- iPhone X safe area size
- [WindowScene] Failed to Error
- swift uitextfield 글자수 제한
- 위메프
- autoclosure
- Swift 앱 버전
- Bundle main infodictionary swift 4
- Swift version code
- swift actor
- firebase remote config
- Swift check notch
- Swift 노치 구분
- [WindowScene] Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?
- swift autoclosure
- 맛집
- Swift button text underline
- 쇼미더머니6
- Swift app version check
- Android
- android notification
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |