티스토리 뷰

  ViewPager를 사용시 Scroll 했을시에 대한 이벤트를 알아보겠습니다.

ViewPager Scroll Event

  우선 Viewpager와 그에관한 Adapter는 준비되어 있다고 생각하겠습니다. Viewpager와 Adapter에 관해서 궁금하시면 다른 블로그를 참조해주시거나 글쓰기 요청을 해주시면 다음기회에 작성해보겠습니다. 그럼 Viewpager와 Adapter가 준비되어있는 상태에서 해당 class들을 사용하는 Activity에서는 다음과 비슷하게 정의가 되어있을겁니다. ( 제가 사용한 예제의 경우 다음과 같이 정의하였습니다. )


1
ViewPager viewPager = (ViewPager) findViewById(R.id.choose_viewpager);
cs


 다음으로 정의한 viewpager를 이용하여 다음의 함수를 override합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                
            }
 
            @Override
            public void onPageSelected(int position) {
 
            }
 
            @Override
            public void onPageScrollStateChanged(int state) {
 
            }
        });
    }
cs


 setOnPageChangeListener를 통해 오버라이드된 onPagescrolled, onPageSelected, onPageScrollStateChanged 를 이용하여 각각 원하는 상태의 함수를 통해 이벤트 처리를 해주실 수 있습니다. 예제로는 onPageSelect 부분에서 다음과 같이 작성하여 살펴보겠습니다. 각각의 position에 도달하면 textView가 바뀌는 처리입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
               
            }
 
            @Override
            public void onPageSelected(int position) {
                switch (position){
                    case 0:
                        textView.setText("Free Experiment");
                        break;
                    case 1:
                        textView.setText("MOSFET");
                        break;
                    case 2:
                        textView.setText("BJT");
                        break;
                }
            }
 
            @Override
            public void onPageScrollStateChanged(int state) {
 
            }
        });
cs


  다음과 같이 잘 동작하는것을 볼 수 있습니다.



 각각의 position 마다 Text가 바뀌는것을 확인할 수 있습니다.




댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday