2012-02-18 96 views
4

尽管我在这方面看到很多问题试图实现所有这些问题,但我决定再次提出这个问题,因为没有任何建议的方法为我工作。DialogFragment在方向改变时消失

问题: 我试图显示一个基于ActivityFragment内部的DialogFragment的自定义对话框。 活动正在重新定位方向变化,因为它有不同的布局。 每当发生这种情况时,DialogFragment都会消失。 (我使用的是最新的支持包)

的事情,我已经厌倦了:

  1. 使用onRetainCustomNonConfigurationInstance,试图挽救dilaog。
  2. 在对话框onCreate中使用setRetainInstance(true)。
  3. 对话框中的静态newInstance()方法。
  4. 覆盖对话框的onDestroy以消除内部对话

和其他一些记录的解决方案的破坏监听器。 似乎没有任何工作,我厌倦了这些解决方案的可能变化,我的自定义对话框在各种状态下拥有许多UI元素的原因,我真的得到这个工作。

如果任何人可以请提供一些代码解决方案,将不胜感激。

感谢, 图腾

+0

也许你可以提供自己的一些代码,然后我们可以帮你调试。 – lyricsboy 2012-02-18 04:03:50

+0

我想关闭我的对话框的方向更改ON目的...你能提供一些代码来显示你是如何做到的? – Rich 2014-01-30 21:33:11

回答

3

的问题是,FragmentManager也通过我忽略的ActivityFragment压倒一切为我自己的目的时,调用父的的onSaveInstanceState()保留。

感谢, 图腾

+6

我遇到同样的问题,但我不明白你是如何修复它的。你忽略了什么,以及在哪里?父Activity中的onSaveInstanceState? – span 2012-08-14 08:15:41

+1

@span - 我相信他说他忘了在他的子类中调用super.onSaveInstanceState()。父级在onSaveInstanceState中重新创建片段,但如果他不调用super,则不能。 – Grimmace 2013-06-17 19:39:57