java.lang.IllegalStateException: Fragment already added

遇到的问题:

java.lang.IllegalStateException: Fragment already added

fragment 已经添加了 在网上查的答案大部分都是添加一个fragement.isAdded();判断。但是我的代码里面写的已经添加过了,但是还是有报这个错。


java.lang.IllegalStateException: Fragment already added_第1张图片

现在的情况是Activity+Fragment+DailogFragment.先看一下什么情况下会报错


java.lang.IllegalStateException: Fragment already added_第2张图片

原本以为是fragment和dailogFragment是同一个实体 , 结果发现是DialogFragment add了两次,下面两张图是debug时发现fragment和dailogFragment的


java.lang.IllegalStateException: Fragment already added_第3张图片


java.lang.IllegalStateException: Fragment already added_第4张图片



DialogFragment.show()内部调用了FragmentTransaction.add()方法,所以调用DialogFragment.show()方法时候也可能会出现这个异常。


java.lang.IllegalStateException: Fragment already added_第5张图片

解决方案:dialogFragment.show(getChildFragmentManager(),"tag");

你可能感兴趣的:(java.lang.IllegalStateException: Fragment already added)