fragment+viewpager可以运行,但是会报一个错误

我用framement+viewpager做了三个页面的切换,调试之后在手机上可以运行,但是每次切换界面都会报如下错误
moveToState: Fragment state for CustomerInf{55de94e #1 id=0x7f0c005d android:switcher:2131492957:0} not updated inline; expected state 3 found 2
其中粗体部分是一个是其中一个fragment
我总共有三个CustomerInf,按在viewpage中的顺序为CustomerInf,EquipInf,和FAQ,它报错的时候总是报相邻的错误,比如当我从CustonInf切换到EquipInf,系统就是提示Fragment state for FQAnot updated inline,但我再从EquipInf切换到FAQ的时候就不会有问题,
我怀疑是viewpage储存的问题,但就是搞不懂。。
所以。。这到底怎么回事?另外,会有什么影响?因为我现在就只是放了三个不同的fragment,还没开始在fragment之前传数据,现在只是表面上看起来没什么问题,不知道以后会不会影响其他功能?谢谢!

这个问题你解决了吗?

在activity中不同的frament之间项目替换的时候,FragmentManager只会remove和add这些frament,然而这些frament里面自己加载的frament(这里就是我们的CaptionPropertiesFragment)是没有被remove. 很显然这是一个缺陷!因为后一个frament(CaptionPropertiesFragment)很明显是依赖与他的父frament的,应该同时递归的remove.

那么如何解决这个问题呢!很显然就是在不用这个frament(ToggleCaptioningPreferenceFragment)的时候把他里面加载的frament给remove掉!这个操作在ToggleCaptioningPreferenceFragment的onDestroyView()里面就可以解决问题了!如下代码:

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

if(mPropsFragment != null){
  FragmentManager f = getFragmentManager();
  if(f != null && !f.isDestroyed()){
    final FragmentTransaction ft = f.beginTransaction();
    if(ft != null){
      ft.remove(mPropsFragment).commit();
    }
  }
}

}

这里要注意f.isDestroyed()这样来判断是否这个FragmentManager处于Destroyed,如果不加这个判断的话,横竖屏切换时候会出错!