0

나는 7 페이지가있는 ViewPager를 가지고 있는데, 네비게이션 중 4 개를 유지하고 있고, 다른 4 세트와 GC로 교체 된 후에 파멸된다. 내 사용자 정의 내부ViewPager에서 파편 조각이 어떻게 되나요?

gPager.get().setOffscreenPageLimit(4); 

FragmentStatePagerAdapter

@Override public Parcelable saveState() { return null; } 

내 문제는 내가 그것이 'mDrawerLayout'와 mDrawerList처럼 파괴 된 후 내가 수동으로 조각의보기를 다시 초기화해도 널 포인터 오류를 얻고있다. 예 :

 View rootView = inflater.inflate(R.layout.drawer_layout_fragment, container, false); 
     mDrawerLayout = (DrawerLayout) rootView.get().findViewById(R.id.drawer_layout); 
     mDrawerList = (ListView) rootView.get().findViewById(R.id.left_drawer); 

다른 조각이 파괴되고 일부가 ViewPager의 페이지에 표시되는 경우. 이 단편이 다시 생성되었거나 onDestory이더라도 그대로 유지됩니까?

Frag2이 파괴되고 Frag1이 아닌 경우. 주 활동에있는 viewPager가 으로 다시 전화합니까? 아니면 자동으로 setAdapter을 건너 뛰고 조각을 채우려면 MyCustomPagerAdapter으로 직접 이동 하시겠습니까?

@Override

public Fragment getItem(int arg0) { 
    SavePref saveState = new SavePref(mContext.get()); 

    switch(arg0){ 
     /** Android tab is selected */ 
     case 0: 
      Frag f1 = new Frag1() 
      return f1; 

     case 1: 
      Frag f2 = new Frag2() 
      return f2; 
    } 
} 
+0

먼저'하나의 수단 (4) 현재 선택된 프래그먼트의 측면이 메모리에 유지됩니다. 따라서 현재 표시된 조각을 제외한 8 개의 조각이 메모리에 유지되는 지점에 도달 할 수 있습니다. 그리고 두 번째로'FragmentStatePagerAdapter'가 sate를 저장하게하고,'saveState()'를 오버라이드하지 마십시오. –

+0

@ M-WaJeEh 나는'saveState'를 무시하고'onConfig Changes'를 사용하지 않을 것이므로 널 포인터를 트리거하지 않는'orientation change '가있을 때 조각 상태를 유지할 수 있습니다. 이것은 w/o 방향 변경 없이도 탐색에 영향을 줍니까? – rahstame

+0

당신이 말한 것을 이해하지 못합니다. 이 메소드는'FragmentStatePagerAdapter'를위한 것입니다. 'FragmentStatePagerAdapter'가 조각의 상태를 저장하기를 원하지 않습니까? –

답변

0

보기 호출기는, 위치 및 배열을 사용하여 상자를 다시 instantiateItem 동안 로직을 사용 단편 파괴되면 .. 모든 'setOffscreenPageLimit (4)의