重叠DialogFragment,在方向更改时以错误的顺序重新创建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重叠DialogFragment,在方向更改时以错误的顺序重新创建相关的知识,希望对你有一定的参考价值。

我正在使用两个重叠的DialogFragment(我知道,也许它不是一个好的设计模式),我在方向变化方面存在问题。

当方向改变时,最外部的DialogFragment(最小的)落后于最内部的。

对我的应用程序最简单的解决方案可能是解雇最外部的DialogFragment,但我无法做到,因为setRetainInstance(false)似乎无法使用DialogFragment

片段是动态添加的,调用:

DialogFragment fragment = CreateEventFragment.newInstance(0);
fragment.show(getFragmentManager(), CreateEventFragment.FRAGMENT_TAG);
答案

我用这种方式解决了问题,覆盖了onSaveInstanceState

@Override
    public void onSaveInstanceState(Bundle outState) {
        if(outState==null)
            super.onSaveInstanceState(outState);
    }

现在,在改变后,最大的qazxsw poi保持在外部,因此它们以正确的顺序重新创建。

以上是关于重叠DialogFragment,在方向更改时以错误的顺序重新创建的主要内容,如果未能解决你的问题,请参考以下文章

DialogFragment 方向更改崩溃与 getActivity()

方向更改时的 DialogFragment 回调

全屏DialogFragment与StatusBar重叠

当我们在运行时更改模拟器方向时,UIViews 重叠

无法动态更改自定义 DialogFragment 布局

如何更改 DialogFragment 周围的背景颜色?