본문 바로가기
[ Developer ]/Android

[Android] 안드로이드 Fragment & View Pager 프래그먼트, 뷰 페이저

by 김현섭. 2016. 7. 22.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Android Fragment View Pager

이전에 했던 Gallery Fragment에서 3가지를 보여주기로 한다
그러기 위해서 일단은 gallery라는 패키지를 생성해서 관리를 조금 쉽게 한다


그런 후 Fragment를 3가지를 생성해준다
우선 구성할 화면을 확인해본다


위와 같이 위에 버튼 3개를 주고 버튼 클릭 시 밑에 View를 각각의 컨텐츠로 보여주게 되는 것이다
하지만 위에 화면은 페이지가 3개가 연달아 붙어 있고 하나씩을 보여주는 것이지 클릭 시 마다 새로운 페이지를 띄우는 형태가 아니다

이제 fragment_gallery.xml에 가서 수정을 해주게된다


우선 위와 같이 LinearLayout을 이용해서 버튼 세개를 생성한다
이제 밑에 ViewPager를 생성해준다


이제 엣지 부분이 더 있다면 흐릿하게 보여주는 옵션이 있는데 다음의 옵션을 주면 된다


Viewpager에는 Fragment를 Source로 등록을 해주면 된다


Fragment마다 구분을 주기 위해서 각각 1, 2, 3에서 TextView에서 Text만을 변경해준다
이제는 GalleryFragment.java를 수정해준다


onCreateView 위에 각각의 요소를 추가해준다
그런 후 onCreateView 안에서 요소를 가져오면 된다


이제 FragmentPagerAdapter를 상속받아서 이용해야 한다


다음과 같이 선언주면 된다
private class PagerAdapter를 extends한 후 Ctrl + Enter로 자동완성 시키면 된다

다음 중 메소드 getCount는 다음과 같은 기능을 한다


메소드 중 getItem은 다음과 같은 기능을 한다


Fragment를 띄우기 위해서 위에 Fragment를 선언한다


그런 후 포지션에 맡게끔 리턴을 해주기만 하면 된다


위와 같이 작성되면 Pager는 완성이 된 것이다
그런 후 Pager에 Adapter를 주기 위해서 요소를 가져온 곳에서 설정을 해주면 된다


위와 같이 작성하면 기본적으로 첫 번째 페이지를 보여주게 된다
이젠 버튼 클릭 시 마다 보여주는 페이지를 다르게 하면 된다


클릭 시 pager의 CurrentItem을 지정해주면 된다
결과를 보면 누를 시 옆에서 넘어오는 것을 볼 수 있다


그리고 터치로 옆 화면을 넘기면서도 메뉴를 넘어가는 것을 볼 수 있다


그러나 다른 Fragment를 다녀오면 페이징이 제대로 되지 않는 문제가 발생하는데
GalleryFragment에서 다음과 같이 변경을 해주면 된다