Skip to content

Instantly share code, notes, and snippets.

@r17171709
Created June 3, 2015 21:00
Show Gist options
  • Save r17171709/a2253b6d239025ec8eb8 to your computer and use it in GitHub Desktop.
Save r17171709/a2253b6d239025ec8eb8 to your computer and use it in GitHub Desktop.
//viewPager中加载frament方法
//查找是不是已经保存过fragment,优先使用保存过的fragment
if(savedInstanceState!=null) {
fragment1=(MyGridViewFragment) getChildFragmentManager().getFragment(savedInstanceState, "first");
if((MyGridViewFragment) getChildFragmentManager().getFragment(savedInstanceState, "first")==null) {
fragment1=MyGridViewFragment.getInstance(1);
}
else {
fragment1=(MyGridViewFragment) getChildFragmentManager().getFragment(savedInstanceState, "first");
}
if((MyGridViewFragment) getChildFragmentManager().getFragment(savedInstanceState, "second")==null) {
fragment2=MyGridViewFragment.getInstance(2);
}
else {
fragment2=(MyGridViewFragment) getChildFragmentManager().getFragment(savedInstanceState, "second");
}
if((MyGridViewFragment) getChildFragmentManager().getFragment(savedInstanceState, "third")==null) {
fragment3=MyGridViewFragment.getInstance(3);
}
else {
fragment3=(MyGridViewFragment) getChildFragmentManager().getFragment(savedInstanceState, "third");
}
if((ThemeFragment) getChildFragmentManager().getFragment(savedInstanceState, "four")==null) {
fragment4=new ThemeFragment();
}
else {
fragment4=(ThemeFragment) getChildFragmentManager().getFragment(savedInstanceState, "four");
}
}
else {
fragment1=MyGridViewFragment.getInstance(1);
fragment2=MyGridViewFragment.getInstance(2);
fragment3=MyGridViewFragment.getInstance(3);
fragment4=new ThemeFragment();
}
fragments.add(fragment1);
fragments.add(fragment2);
fragments.add(fragment3);
fragments.add(fragment4);
//注意这边一定要使用getChildFragmentManager()
adapter = new MyAdapter1(getChildFragmentManager());
//如果fragment页曾经被展示过,那么就保存
@Override
public void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
if(fragment1!=null&&fragment1.isAdded()) {
getFragmentManager().putFragment(outState, "first", fragment1);
}
if(fragment2!=null&&fragment2.isAdded()) {
getFragmentManager().putFragment(outState, "second", fragment2);
}
if(fragment3!=null&&fragment3.isAdded()) {
getFragmentManager().putFragment(outState, "third", fragment3);
}
if(fragment4!=null&&fragment4.isAdded()) {
getFragmentManager().putFragment(outState, "four", fragment4);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment