Nuke Olaf - Log Store
[Android] 안드로이드 - View Pager, 게시물을 옆으로 넘기며 보여주기 본문
1. view pager 란?
https://developer.android.com/reference/android/support/v4/view/ViewPager
사용자가 페이지를 좌우로 넘길 수 있는 레이아웃 관리자이다.
마치 책을 넘기는 것처럼(paging) 사용자가 손가락으로 스와이프하여 레이아웃을 옆으로 넘길 수 있다.
뷰 페이저를 이용하면 데이터를 "페이지 단위"로 화면에 표시할 수 있다.
안드로이드에서는 데이터 리스트를 아이템 단위의 뷰 또는 뷰 집합으로 표시할 때 어댑터를 사용한다. 뷰 페이저도 이와 마찬가지로 어댑터를 이용해 각 페이지를 위한 뷰를 생성한다.
View Pager 에서 사용하는 어댑터는 Pager Adapter 이다.
2. view pager 를 어떻게 사용하는가?
(1) 레이아웃에 ViewPager 를 추가한다
(2) 페이지 뷰를 위한 레이아웃 (아이템뷰) 을 만든다
(3) 페이저 어댑터를 상속하여 구현한다
extends PagerAdapter
(4) 뷰 페이저에 어댑터를 달아준다
viewaPager.setAdapter(pagerAdapter)
3. view pager 의 메커니즘
처음 페이지가 생성 될 때, 처음 보일 페이지와 그 다음의 페이지, 총 2개의 페이지가 instantiateItem 메소드를 통해 생성 되게 됩니다. 위의 그림으로 보면 0과 1이 생성이 됩니다.
그리고 1 페이지로 넘어갔을 때, 메모리에는 0, 1, 2 총 3개의 페이지가 생성이 되어 있게 됩니다. 즉, 내 위치에서 -1, +1 의 위치에 있는 페이지가 메모리상에 존재 하게 됩니다.
2페이지로 넘어 갔을 경우, 3 페이지가 메모리에 올라오고 0번째 페이지는 destroyItem 메소드를 거쳐서 메모리에서 사라집니다.
이런식으로 Viewpager는 메모리 효율을 높이고 관리합니다.
예제 참고 사이트>>
https://thomass.tistory.com/16
https://gdtbgl93.tistory.com/3
https://kitesoft.tistory.com/76
https://recipes4dev.tistory.com/148
'Android' 카테고리의 다른 글
[Android] 안드로이드 - natario1/CameraView 카메라 필터 라이브러리 분석 (0) | 2020.01.04 |
---|---|
[Android] 안드로이드 - view Pager 자동으로 넘기기 (소스코드) (0) | 2020.01.01 |
[Android] 안드로이드 - 이미지 움직일 때 애니메이션 넣기 (0) | 2020.01.01 |
[Android] 안드로이드 - AsyncTask 예제 사이트 링크 (0) | 2019.12.30 |
[Android] 안드로이드 - Thread, Service, AsyncTask 의 차이점 (0) | 2019.12.30 |