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

问题描述

fragment+viewpager可以运行,但是会报一个错误 50C
我用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,如果不加这个判断的话,横竖屏切换时候会出错!

时间: 2024-08-06 19:49:03

fragment+viewpager可以运行,但是会报一个错误的相关文章

信息-一个crm项目运行时的报的错误,还有如何登陆上去?

问题描述 一个crm项目运行时的报的错误,还有如何登陆上去? 朋友,我下载了一个crm项目源码.然后:A我再Myeclipse下面进行测试.B用的是Tomcat 服务器.C输入地址:localhost:8088/crm后提示一个登陆页面. 问题:要输入密码和用户名.可是我不知道是多少啊?看了它的配置什么的也没有找到相关 的信息.好急啊.谢谢,指望这个项目搞懂了面试啊.谢谢好人一生平安.

请教大神 我这个错误是怎么回事啊?加上jsp-api.jar报一个错误,不加报另一个错误,在线跪求解决办法啊

问题描述 不加报这个错误加上报这个错误 解决方案 解决方案二:求大神速度来啊解决方案三:版本冲突第一个说你的某些Annotation没有定义第二个错误里standard-1.1.2.jar没有包含TLD,你去换一个包解决方案四:首先你得PageContext对象找不到,看看你是否引入包,或者是有没有这么类其次,你得tld文件找不到,看看你是否加入到了classpath中去,如果没有,加入试一试,如果加入了,还是出现这个问题,换一个包试一试呢!解决方案五:引用2楼holzkoepfer的回复: 版

运行时一直报这个错误,我是新手希望大神帮忙解决下,不胜感激

问题描述 解决方案 解决方案二:看代码是C#的吧?你在C#中调用了C++的库吗?解决方案三:程序运行缺少东西,具体自己看看那个dll没有被引用到.解决方案四:引用2楼duanzi_peng的回复: 程序运行缺少东西,具体自己看看那个dll没有被引用到. +1解决方案五:用Depends工具查看dll文件依赖关系,把缺少的文件引用进来解决方案六:点开引用那里,看看有没有黄色的感叹号

tring format报错-在myEclipse9.0中运行String.format报错

问题描述 在myEclipse9.0中运行String.format报错 错误信息:The method format(String, Object[]) in the type String is not applicable for the arguments (String, String) 源代码: public void test1(){ String str=null; str=String.format("Hi, %s", "林计钦"); // 格式化

IIS7使用.NET Framework v4.0运行库报500错误的解决办法_win服务器

故障说明:1)Windows Server 2008 R2环境下安装的IIS7.52)安装.Net4.53)运行网站,报500错误:检查了webconfig等代码,没有问题 解决办法:重新注册.Net4.5,过程如下:一.开始,查找框中输入cmd字眼,然后出现cmd.exe应用程序二.cmd.exe上右键,选择用管理员身份来运行. 三.往命令行窗口中粘贴以下命令,回车,完成注册. 复制代码 代码如下: "%WINDIR%\Microsoft.NET\Framework\v4.0.30319\as

tomcat-关于hibernate的问题,一个项目刚导入时可以运行,但在果断时间后再次运行就报500错误

问题描述 关于hibernate的问题,一个项目刚导入时可以运行,但在果断时间后再次运行就报500错误 具体情况介绍,在某网站下载了一份开源代码之后,第一次导入Eclipse,是可以运行的.但在一段时间之后,再次运行报500错误.期间没有对代码有过任何修改.删除该项目重新解压一份并导入后又可以运行,但过段时间后又不能运行.感觉这个问题很奇怪,有没有大神懂.下面我说一下今天的情况:下午又导入了一次,运行时没问题的,然后我停掉tomcat后,紧接着又运行了一遍,还是可以的.之后我就不再运行这个项目.

安卓开发-在fragment中实例化一个布局,点击其他fragment后再点击回来报错

问题描述 在fragment中实例化一个布局,点击其他fragment后再点击回来报错 10-20 04:24:35.864: E/AndroidRuntime(1390): FATAL EXCEPTION: main 10-20 04:24:35.864: E/AndroidRuntime(1390): Process: com.example.navigationdrawertest, PID: 1390 10-20 04:24:35.864: E/AndroidRuntime(1390):

android fragment-问一个关于fragment+Viewpager加按钮跳转页面问题

问题描述 问一个关于fragment+Viewpager加按钮跳转页面问题 用fragment+viewpager写了个页面滑动, 然后我在首页想加一个按钮,然后实现点击跳转到另一个新页面,但是怎么跳都跳不过去我简单拉出来的页面,是不是Viewpager里不能实现加按钮跳转,能不能用什么东西代替它 解决方案 你要startActivity(it) 解决方案二: 你没有写跳转语句啊. 你在onClick(VIew v) 后面加一句: getActivity().startActivity(it);

我安装了IIS,并配置好了,但还是运行不了ASP页面,它会报一个文件下载安全警报的对话框,这是怎么回事?请帮忙解决一下,谢谢

问题描述 我安装了IIS,并配置好了,但还是运行不了ASP页面,它会报一个文件下载安全警报的对话框,这是怎么回事?请帮忙解决一下,谢谢 解决方案 解决方案二:iis配置的问题解决方案三:ASP??估计你的IIS没有装好吧.解决方案四:如果没有猜错---你没有安装.netframework~~~~而且没有使用nerframework里面的aspnet_regiis程序来注册IIS.解决:安装netframework2.0打开运行输入cmd然后在dos界面下面输入cd(自己的安装系统盘):WINDO