赞
踩
横竖屏切换时候,FragmentTransaction commit 报错:java.lang.IllegalStateException: commit already called
根据上面的错误信息继续追踪
BackStackRecord.java类里面的 commitInternal 方法
从上面图片源码可以看到FragmentTransaction 调用的commit时最终是调用commitInternal 方法,在commitInternal 里如果mCommitted是true则抛出IllegalStateException(“commit already called”);大致意思是每一个实例化后的 FragmentTransaction 的事物只能被提交一次。
在mTransaction调用add或者replace方法之前,重新实例化一下 mTransaction
mTransaction = getSupportFragmentManager().beginTransaction();//mTransaction 实例化
程序修改如上图所示,mTransaction可以正常commit了。
欢迎关注我的公众号,不定期推送优质的文章,
微信扫一扫下方二维码即可关注。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。