2012-02-18 107 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