3

viewpager에 3 개의 프래그먼트가 있습니다 (호환성 라이브러리 사용). 앱이로드되면 첫 번째 프리젠 테이션이 표시됩니다. 두 번째 및 세 번째 페이지는 CPU 집약이기 ​​때문에 사용자가 처음 스 와이프 할 때만 해당 콘텐츠를로드하고 싶습니다.ViewPager의 조각이 분리 된 것 같습니다.

@Override 
public void onResume() { 
    super.onResume(); 

    if ((MainActivity) getActivity() != null && ((MainActivity) getActivity()).pager != null && ((MainActivity) getActivity()).pager.getCurrentItem() == 1) { 
     doCpuIntensiveLoading(); 
    } 
} 

를로드 할 때 않도록하기 위해 : 나는 구현이에 대한

이 ViewPager.OnPageChangeListener와 오버라이드는 조각 onResume에서 조각

public void onPageSelected(int position) { 
    getItem(viewPager.getCurrentItem()).onResume(); 
} 

에 onResume를 호출 onPageSelected 다음과 같은 것이있다 인스턴스화되고 표시되지 않지만 호출기의 getCurrentItem()이 프래그먼트의 ID를 반환 할 때로드합니다.

그러나! 페이지로 스크롤하면 조각의 메뉴가 채워지고 메뉴에서 load를 호출해도 getActivity()가 null을 반환합니다.

자세한 내용이 필요하면 알려주십시오.

답변

0

좋아, 가지고있어 : onSaveInstanceState에 조각을 저장하고 주요 활동 (예 : this post

)에서 복원해야했습니다.
관련 문제