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

조회수 1979회

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

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

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

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

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

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

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)