마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

FragmentPagerAdapter 질문드립니다.

0 추천

FragmentPagerAdapter 의 경우, 사용자가 어플리케이션 화면을 스윕해서 새로운 View 가 표시되면, 이전 Fragment 를 분리한 후, 메모리 상에 저장해 두었다가  사용자가 어플리케이션 화면을 반대로 스윕하면, 메모리 상에 보전된 Fragment 를 재활용하는 걸로 알고 있는데 

현재 진행 중인 프로젝트에  Fragment_A,Fragment_B,Fragment_C로  3개의 페이지로 구성되어있습니다.항상  FragmentA에는 특정UI로 초기화 되어 있어야 하는데 A 에서 B로 서로 스왑하면서 페이지를 이동하면 Fragment A는 특정UI로 초기화가 잘 됩니다. 하지만 Fragment_C로 이동하였다고  Fragment_A로 다시 이동하면 FragmentA에가 원하는데로 특정Ui로 초기화 되지 않는데 이유를 모르겠습니다.

해결방안을 알려주시면 감사하겠습니다.

 

펑키펑키 (460 포인트) 님이 2015년 9월 3일 질문

2개의 답변

0 추천
자답 입니다.

viewpager.setOffscreenPageLimit(2) 사용하여 해결하였습니다.
펑키펑키 (460 포인트) 님이 2015년 9월 3일 답변
0 추천
자답해주셨지만 설명 추가해봅니다. PagerView와 FragmentPagerAdapter를 사용하고 한다는 가정하구요. PagerView는 기본적으로 현재 보여주고 있는 Fragment와 양옆의 Fragment를 getItem을 통해서 생성한후 가지고 있습니다.

1. FragmentA가 보여질때 FragmentA와 FragmentB를 getItem을 통해서 가져와서 Attach합니다.

2. FragmentB로 가면 기존 FragmentA와 FragmentB 그리고 새로 FragmentC를 Attach합니다.

3. FragmentC로 가면 기존 FragmentB와 FragmentC를 유지하고 FragmentA는 Detach됩니다.

4. 이상태에서 다시 FragmentA로 가게되면 FragmentA는 getItem을 통해서 새로 가져와서 Attach합니다.

언급하신 setOffscreenPageLimit를 통해서 유지하고 있는 것을 두번째 옆에것까지로 늘려서 해결한 것입니다.
회색 (21,340 포인트) 님이 2015년 9월 3일 답변
...