나는 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;
}
}
먼저'하나의 수단 (4) 현재 선택된 프래그먼트의 측면이 메모리에 유지됩니다. 따라서 현재 표시된 조각을 제외한 8 개의 조각이 메모리에 유지되는 지점에 도달 할 수 있습니다. 그리고 두 번째로'FragmentStatePagerAdapter'가 sate를 저장하게하고,'saveState()'를 오버라이드하지 마십시오. –
@ M-WaJeEh 나는'saveState'를 무시하고'onConfig Changes'를 사용하지 않을 것이므로 널 포인터를 트리거하지 않는'orientation change '가있을 때 조각 상태를 유지할 수 있습니다. 이것은 w/o 방향 변경 없이도 탐색에 영향을 줍니까? – rahstame
당신이 말한 것을 이해하지 못합니다. 이 메소드는'FragmentStatePagerAdapter'를위한 것입니다. 'FragmentStatePagerAdapter'가 조각의 상태를 저장하기를 원하지 않습니까? –