fragment的状态保存和activity一样通过saveinsatance保存的

解决方案 »

  1.   

    我也看了一下onSaveInstanceState相关资料,楼上能否给点简易的代码说明下流程
      

  2.   

    onSaveInstanceState还是要自己去保存要保存的内容,这样还是比较麻烦。为什么popBackStack,这个方法,把栈顶的fragment移除后,剩下的fragment是刷新的呢
      

  3.   

    我已经放弃使用fragment了,这个东西只适合显示固定不变的东西,因为onCreateView总是会被调用,每次调用都会把界面刷一遍,需要自己把数据再设置进去,少量数据还可以操作,大量数据这个过程就很不爽了,有空再研究
      

  4.   

    放数据很正常啊.TabActivity不也一样吗!
      

  5.   

    我也遇到过同样的问题,我在屏幕翻转的时候就可以保存状态,但是在切换到另外一个fragment的时候就保存不了了,到底怎么回事~~~
      

  6.   

    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    for (int i = 0; i < TAB_NUM; i++) {
    Fragment userFragment = fm.findFragmentByTag(TabTag(i));
    Fragment fragment = null; if (userFragment != null) 
    fragment = userFragment;
    else {
    fragment = mFragments.get(i); //mFragments是存储你的fragment instance的LIST
    }
            if (i == index) {
    if (!fragment.isAdded()) {
    ft.add(R.id.content, fragment,TabTag(i));//第三个参数加Tag
    }
    } else {
    if (fragment.isAdded()) {
    ft.remove(fragment);
    ft.addToBackStack(null);
    }
    }
    }
    ft.commit();
      

  7.   

    我也碰到了。老是onCreateView,怎么破?
      

  8.   


    transaction = getSupportFragmentManager().beginTransaction(); if (fragment != null) {
    transaction.hide(fragment);
    }

    fragment = fragments.get(folder); if (fragment == null) {
    fragment = new MailFragment(); transaction.add(R.id.frameLayout, fragment);
    fragments.put(folder, fragment);
    }
    transaction.show(fragment);
    transaction.commit();
      

  9.   

    replace() 后,前面的Fragment会再执行一遍onCreateView()的
    要想不onCreateView(),用add(),自己控制hide() or show()