Nuke Olaf - Log Store

[Android] 안드로이드 - View Pager, 게시물을 옆으로 넘기며 보여주기 본문

Android

[Android] 안드로이드 - View Pager, 게시물을 옆으로 넘기며 보여주기

NukeOlaf 2020. 1. 1. 18:24

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

 

Comments