ViewPager 로 탭버튼 구현중입니다.
조회수 1502회
viewPager 어댑터안에 이런식으로 구현을 했는데
@Override
public Fragment getItem(int position) {
Log.d("test","=====position====" + position);
switch (position){
case 0:
fragement a = new a();
return a;
case 1:
fragment b = new b();
return bt;
case 2:
fragment c = new c();
return c;
case 3:
fragment d = new d();
return d;
default:
return null;
}
이런식으로 하였는데 viewpager가 처음에 호출될경우 0,1 이렇게 포지션이 잡혀서 getItem안에 포지션은 0 , 1 , 1,2 2,3 이렇게 되서 2번호출시에 3번도 같이 호출이 되는경우가 생깁니다.. onPageSeleten 안에서의 position 값은 선택되는 번호로 1번 누르면 1번 포지션이 잡히는데 .. getItempos는 계속 1,2 이렇게되어버리네요.. 해결 방법 도움 부탁드립니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
getItem() 함수내에서 1, 2가 한꺼번에 호출되는 것은 ViewPager의 의도된 동작입니다. ViewPager는 현재 화면의 좌, 우 페이지를 한꺼번에 생성합니다.
위 그림처럼 ViewPager는 현재 화면인 2번 페이지 뿐만 아니라 좌,우에 있는 1, 3번 페이지도 미리 생성합니다. 1, 3번 페이지를 off-screen 페이지라고 하고요. off-screen 페이지를 몇개까지 생성할 수 있는지를 조절하고 싶다면
ViewPager.setOffscreenPageLimit(int limit);
함수를 사용하세요.관련해서 다음 링크를 읽어보시면 도움이 될 것 같습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력