2013-01-22 149 views
2

我查找了如何在Android應用程序中旋轉屏幕時不重新加載整個活動。最後,我發現只使用Android上的簡單屏幕旋轉

android:configChanges="orientation" 

在AndroidManifest中的活動定義是非常足夠的。當我旋轉手機時,活動不會重新加載,我的所有視圖都可以完美調整爲橫向,沒有任何問題,onSaveInstanceState或onRestoreInstanceState(在某些指南中用於編程旋轉)都會被觸發。

但是,如果是這麼簡單,爲什麼所有的教程和指南我發現目前如此複雜的解決方案? 也就是說

http://www.devahead.com/blog/2012/01/preserving-the-state-of-an-android-webview-on-screen-orientation-change/

Saving some data on orientation change in Android

通過我的實驗,一切都自動重新正確渲染,但不存在與我簡單的解決一些隱藏的問題,我不知道?它真的那麼簡單和正確嗎?

謝謝

回答

1

如果在配置更改時不需要更改任何資源,這很好。但是,如果你定義了景觀資源,那麼你現在需要自己處理交換UI資源。但是如果活動不需要更改資源,那麼確實很簡單。

android:configChanges="orientation|screenSize" 

如果你的目標SDK 12或以下,這是 - :

另外,如果你的目標SDK 13或以上,您的清單中必須包括旋轉的變化,如屏幕尺寸值被警告如你所知,這很好。

-1

在manifest資源配置文件

android:configChanges="keyboardHidden|orientation" 

這是真的夠添加此。我也有同樣的疑問

1

對於「簡單」的應用程序,如聯繫人選取器或類似的東西,你並不需要保存信息,你真的只需要重新定位視圖,所以使用android:configChanges = 「定位」將完成這項工作。

但是,如果您正在開發類似遊戲或任何需要計算屏幕區域的東西,並且在potrait/landscape模式下會有所不同,您需要保存此信息並重新計算所有內容以正確顯示,而不會出錯。

順便說一下,我不是Android專家或任何其他人,這只是我的簡單觀點/理解。如果這不是正確的答案,請隨時對我施加壓力。