1. http://blog.daum.net/_blog/BlogTypeView.do?blogid=0NADc&articleno=24#ajax_history_home
2. http://thehayro.blogspot.de/2012/12/enable-infinite-paging-with-android.html
3. https://github.com/antonyt/InfiniteViewPager
요즘 ViewPager 에 관심이 좀 있어서 몇일동안 찾아보고 정리합니다.
1번과 2번은 ViewPager의 setCurrentItem 메소드를 이용해서 무한반복하는 방법이고
차이가 있다면 1번은 아답터의 getCount 를 9개 만들어서 가운데서 왔다리 갔다리 하는 것이고
2번은 아답터의 getCount 를 3개 만들어서 항상 가운데 페이지만 보이게 하는 방법입니다.
2번 같은 경우 에뮬에서는 별 문제가 없어보이는데
넥서스4에서 테스트해보니 페이지 이동시 깜박임이 눈에 보였습니다.
3번은 아답터의 getCount 를 Integer.MAX_VALUE(2,147,483,647) 만큼 만들어서
무한반복 하는 것처럼 보이게 하는 방법입니다.
그러나 소스에 아래와 같은 주석이 달려 있네요.
// warning: scrolling to very high values (1,000,000+) results in
// strange drawing behaviour
getCount를 100만개 이상 만들면 어찌고 저찌고......
4번은 ViewPager 의 스크롤을 막는 방법입니다.
개인적으로 3번 방법을 추천하고 싶습니다.(강요 아님)
첨부파일은 3번 방법을 응용하고 FragmentStatePagerAdapter 를 이용해서
무한반복 하는 것처럼 만든 샘플입니다.
에뮬에서도 메모리문제없이 잘 됩니다.

저도 3번방법을 사용하여, 앱을 제작 했었는데요.. Page refresh하는데에 문제가 있었습니다.
앱이 살아있는 동안은 Fragment Object를 다시 set할 수 없다고 하더군요..
FragmentStatePagerAdapter 사용시에 notifyDataSetChanged() 사용한다고 해서 getFragment 부분이 다시시작되어 플러그먼트가 재생성 되지는 않더군요. 카미님이 말씀하신대로 페이지가 넘어가서 지워진 뒤에는 재생성하는데.. 저 같은 경우는 플러그먼트 사용자 선택 내역을 남기기위에 파괴하는 부분을 오버라이딩해서 막아 놓았었습니다. 그리고 검색 조건이 바뀌면 플러그먼트를 재생성해서 최신화를 해볼 생각이었어요. 당연 리스뷰 같이 notifyDataSetChanged() 될 거라고 생각했었더라는... 그런데 안 되더군요.
그래서 해결했던 방법이 변경해야 할 데이터를 받는 함수를 플러그먼트에 만들고 생성된 플러그먼트를 Arraylist 에 가지고 있은 뒤 변경 데이터를 알려주고 setAdapter 전에 destory 부분을 호출하여 모두 파괴 후 다시 set하는 무식한 방법을 썼던 기억이 납니다. 그냥 플러그먼트당 데이트 체인지 인터페이스를 구현해도 될 터인데;;; 왜 이렇게 했는지는 ㅎ 지금도 의문이지만요;;;
조금 오래된 기억이라 ㅎ 뭐 어쨌든;;; 제가 하고싶은 말은 1번 페이지에서 사용자가 뭔가를 바꾸고 6번쯤 가서 다시 1번을 가도 그 내용은 남길 원하면서 무한을 원하면 3번 방법을 사용할 수 없을 지도 모른다는 겁니다. (물론 내부DB를 연동해서 데이터를 저장하는 형태라면...3번을 해도 무방할 것 같군요 ㅎ) 해보지 않아서 장담은 못하겠지만 ㅎ 3번 방법은 현재 보이는 페이지 이전이전 부분을 메모리에서 제거하는 viewpager 특성을 이용하였기에 MAX 카운터를 할 수 있는 듯 보이네요. ㅎ 뭔가 머리를 좀 더 굴리면 괜찮은 방법을 찾을 수도 있을 것 같습니다. ㅎ ㅎ
무한 관련해서 위 자료가 많은 도움이 되고 있습니다. 좋은 자료 감사합니다. ㅎ
흐음; 저도 이 문제때문에 한참 해매다가 3번 방법을 적용하고 노심초사 문제생기지 않을까 생각했는데 왠지 방가운 글이네요 ^^;
페이징을 쭈욱 테스트해보면 CrtPage-1, CrtPage, CrtPage+1 개의 뷰를 재외하곤 즉시 날려버리더군요 (gc가 된다는 이야기는 아닙니다.)