안드로이드 viewpager와 탭기능 구현 시 질문


지금 현재 툴바와 탭, 뷰페이저를 사용하고 있고 각각 프래그먼트에 나타내고 있습니다. 3개의 탭이 있고 각각 화면을 넘길때마다 데이터를 서버에서 불러오고 있습니다. 그런데 처음 탭에서 데이터를 불러오고 세 번째 탭을 갔다가 다시오면 다시 데이터를 불러오고 다시 세 번째 탭을 가면 또 데이터를 불러오고 그러고 있습니다.

처음에 이미 불러왔던 데이터를 저장시켜놔서 탭이 다시 선택되거나 화면을 넘겨서 다시 되면 다시 로딩을 하지 않고 남겨지는 방법이 있나요? ㅜ OnTabSelected나 onTabReselected 여기서 해야하는건가요?

그리고 탭이 3개 이상 넘어가면 viewpager에서 부드럽게 넘어가지가 않고 한 두 세번 드래그해야 완전히 넘어가는데 이건 어떡해야 되죠? ㅜㅜ

  • 2016년 09월 18일에 작성됨
    지금 공익근무 중이고 안드로이드를 공부하고 있습니다.

조회수 133


1 답변


좋아요
1
싫어요
채택취소하기

프래먼트를 사용중이라면 프래그먼트 라이프사이클을 활용해서 해결할 수 있습니다. 프래그먼트의 '''onCreate()''' 또는 '''onCreateView()''' 함수에서 필요한 데이터를 서버에 요청하시고, 뷰페이저의 페이지를 메모리에 계속 유지시켜보세요. 해당 처리는 뷰페이저의 '''setOffscreenPageLimit(int)''' 함수를 이용해서 탭 개수만큼 설정하시면 됩니다.

뷰페이저의 오프스크린 페이지 개수 설정을 하지 않으면 페이지 이동 시 프래그먼트가 생성/소멸을 반복하면서 (구현에 따라) 서버로 반복 요청 할 수 있으니 주의하시기 바랍니다.


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close