본문 바로가기

소프트웨어/Android/Java/Ndk

Android] ViewPager

일반적인 Activity로는 옆으로 View를 넘기는 효과를 주기 어렵다. 

그래서 사용되는것이 View Pager인데 그것에 대해 설명하고자 한다.

완성된 소스의 동영상은 아래와 같다.





일단 이번에 설명하고자 하는 View Pager의 구조는 아래와 같다.(틀릴수도 있다. 직접작성했기 때문에. 그렇지만 이런식으로 이해하는게 쉽다)



View Pager 구조




가장 밖을 감싸는게 FragmentActivity Class다. 간단하게 생각하면 이게 Activity다. 

Activity상에서 좌우로 움직이는 Fragment들을 넣는것이 목표이다.





FragmentActivity를 상속받는 class는 위와 같다. sectionPagerAdapter라는 class를 이용해서 PagerAdapter를 만든 후, Viewpager 변수에 setAdapter 시킨다. 그러면 이제 Fragment Activity의 하위 Fragment는 PagerAdapter에 의해 생산된다.




Adapter pattern이 적용된 class는 위와 같다. 

세 개의 method가 있는데 그 사용법은 이미 list adapter와같이 adapter pattern을 사용하는 interface들과 같다.


1. 생성자 = 그냥 사용하거나 기호에 맞춰서 context같은것을 추가 해주면 됨

2. getItem() : Fragment = 현재 보여지는 position에 맞춰서 Fragment를 Return함. position에 맞춰서 if나 switch를 써주면 됨

3. getCount() : int = 현재 보여지는(미리 로딩해야하는 page도) frangment의 position 출력

3. getPageTitle() : CharSequence = 현재 page가 어떤 fragment인지 Title을 결정해주는 method.



사실 나도 이전에 ViewPager를 써봤지만 거의 support V4 Library의 데모소스를 갖다쓴거라 잘 이해가 안되었는데 하나 하나 읽어가며 다시 공부해보니 Fragment View Pager 구조에 관한 이해가 된 것 같다. 특히! 소스를 보고도 이해가 안간다면 소스와 <그림1.viewpager 구조>를 맞춰보며 읽다보면 구조 이해가 갈 것이다. 



uml

올린 소스의 uml은 위와 같다.




소스첨부.

(mainactivity는 안드로이드 DemoSource이다. Demo 원본을 보고싶다면 mainactivity.class 파일을 확일할 것)


TodayWhereWeGo.zip