我发现了一个错误:
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工作得很好。但是有一段时间,它抛出了这个异常,然后我什么也不做。
那么我的案子有什么问题呢?我怎么才能修好它呢?
发布于 2018-09-25 20:32:43
将isShowing替换为:
if(!mMenuBottomSheetFragment.isAdded()) {
mMenuBottomSheetFragment.show(getSupportFragmentManager(), mMenuBottomSheetFragment.getTag());
}发布于 2018-09-25 20:26:33
片段已经被添加了。没有必要再展示一次。只需在null-check之后检查它,如果添加了它,则返回:
if(mMenuBottomSheetFragment.isAdded()) {
return;
}https://stackoverflow.com/questions/52506139
复制相似问题