我收到此错误:
java.lang.IllegalStateException: Fragment already added: MenuBottomSheetFragment{d476429 #0}
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1891)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:760)
打开我的代码后,单击MenuBottomSheetFragment
:
private void openBottomSheet() {
if (mMenuBottomSheetFragment == null)
mMenuBottomSheetFragment = new MenuBottomSheetFragment();
if (!mMenuBottomSheetFragment.isShowing())
mMenuBottomSheetFragment.show(getSupportFragmentManager(), mMenuBottomSheetFragment.getTag());
}
我的MenuBottomSheetFragment
没什么特别的。
我真的不知道为什么。在大多数情况下,MenuBottomSheetFragment
可以正常工作。但是有一段时间,它会抛出此 Exception ,然后我什么也不做。
那么我的问题是什么?我该如何解决?
答案 0 :(得分:5)
用以下内容替换isShowing:
if(!mMenuBottomSheetFragment.isAdded()) {
mMenuBottomSheetFragment.show(getSupportFragmentManager(), mMenuBottomSheetFragment.getTag());
}
答案 1 :(得分:1)
该片段已被添加。无需再次显示。只需在null
-检查之后检查一下,然后返回是否添加了
if(mMenuBottomSheetFragment.isAdded()) {
return;
}