从对话框处理程序获取当前片段

问题描述

我已经在另一个问题上检查过这个问题,但大多数答案只针对一个特定的对话。我们确实有一些复杂的事情。我们有一个扩展 DialogFragment 的 BaseDialogFragment,一些类型的对话框类型扩展了 BaseDialogFragment 并且有准备对话框的对话框处理程序。我最近一直在尝试解决 Firebase Crashlytics,我们的 LoadingDialogHandler 出现错误

Fatal Exception: java.lang.IllegalStateException
Can not perform this action after onSaveInstanceState
@H_404_5@

据我在研究中看到的,我们确实使用 dialogBox.show(fragmentManager,"") 它有时会导致问题,所以我想像下面那样改变它。

  try {
            dialogBox.show(fragmentManager,"");
        }catch (Exception e){
            int count = fragmentManager.getFragments().size();
            Fragment fragment =fragmentManager.getFragments().get(count>0?count-1:count);

            FragmentTransaction ft = fragmentManager.beginTransaction();
            ft.add(fragment,"");
            ft.commitAllowingStateLoss();
        }
@H_404_5@

但我不确定这个结构是否正确。因为有人说 getFragments 方法没有按顺序返回片段或者它可以为空等。

有没有办法可以调用当前片段来使用 FragmentTransaction 并毫无问题地显示对话框?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)