2012-08-15 56 views
4

圍繞這個論壇經過長時間的搜尋之後的最好方式,我發現了很多,人們提出使用方案,以避免對話框旋轉後解僱的答案,只是想:Android的 - 避免對話框的設備旋轉後駁回

android:configChanges="keyboardHidden|orientation" 

或覆蓋以下方法,這似乎是最推薦:

protected Dialog onCreateDialog(int id) 

但是,Android的參考文檔環顧後,我注意到,這些對話框方法正在過時。

因此,一個顯而易見的問題是:

今天,什麼是避免對話框的設備旋轉後解僱的最佳方式?

在此先感謝。

+0

任何簡單的方法是鎖定屏幕方向,所以沒有旋轉,但我猜測這不是一個選項。 – MikeIsrael 2012-08-15 06:54:45

回答

6

您現在應該使用新的Fragments API中的DialogFragment。要在3.0以下的平臺上使用它,請使用compatibility package

+0

謝謝@Vladimir。 我會嘗試與DialogFragments,因爲我剛纔看到在文檔的下一個狀態: _Dialog \t onCreateDialog(INT ID,捆綁參數) 此方法已被棄用。 **改用FragmentManager使用新的DialogFragment類**;這也可以通過Android兼容性套件在較老的平臺上使用._現在,我確信這是最好的方式。 – 2012-08-15 16:56:33

+1

與一些示例代碼相同的答案:http://stackoverflow.com/a/15729764/842697 – 2013-03-31 13:24:35

0

試試這個....

onOrientationChanged(int x) 
{ 
dialogobject.dismissDialog(); 
} 
4

什麼我會回答是僅基於對話框(NOT dialogfragment這是一個完全不同的遊戲)。

對話框是活動的一部分,因此它們在旋轉過程中被破壞。您以前對該對話框的引用現在將指向一個不在屏幕上的對話框,並且可能會導致您遇到問題。

不幸的是,沒有簡單的解決方案。 隨着android:configChanges="keyboardHidden|orientation"你會爲自己創建一系列其他問題。

要做的方法是保存對話框的任何配置,解除它,並且每當活動被重新創建時,重新創建對話框。

相關問題