Android橫豎屏切換解決方案
原文位址:http://www.cnblogs.com/domybest/archive/2011/06/30/2094779.html
/××注釋
以下解決方案主要是針對切換不同的視圖時而不需重新加載activity裡的資料而設計的,當切換視圖是隻要做相應的處理就不會在此執行onCreate方法
到網上搜了下面這篇靠譜的文章,另外想實作橫豎屏不同布局的切換可以通過建立layout-land和layout-port檔案夾,然後他們裡面放同名的xml布局檔案即可實作
××/
首先在Mainifest.xml的Activity元素中加入android:configChanges="orientation|keyboardHidden"屬性
</activity>
加入這條屬性的含義是,應用程式将會處理螢幕方向和鍵盤狀态(推出或合上)資訊的改動。但對于其他的裝置配置資訊的改動則會由Android系統來處理(銷毀目前Activity,然後重新開機一個新的Activity執行個體)。
其次添權重限
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>
那麼,現在還需要在java代碼的activity子類中加入配置資訊改動的處理代碼。這個也很簡單
}
}
别忘了在java檔案中加上import android.content.res.Configuration。
這樣就OK了,螢幕方向改變時,應用程式的顯示界面也會随着改動,而不是被銷毀!
-----------------------------------還是分割線---------------------------------------------
擴充補充:
Activity中還有一屬性和螢幕方向有關:
. . .
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"sensor" | "nosensor"]
. . .
</activity>
比如,在Mainifest.xml的Activity元素中增加這麼一個屬性:
android:screenOrientation="portrait"
則無論手機如何變動,擁有這個屬性的activity都将是豎屏顯示。
android:screenOrientation="landscape",為橫屏顯示。
這裡提一個小知識,Anroid模拟器中,快捷鍵"ctrl+F11"可以實作轉屏。
另外解釋下:
configChanges有如下選項: 1. orientation :螢幕在縱向和橫向間旋轉, 2. keyboardHidden:鍵盤顯示或隐藏 ,3.fontScale:使用者變更了首選的字型大小 4.locale : 使用者選擇了不同的語言設定,5. keyboard :鍵盤類型變更,例如手機從12鍵盤切換到全鍵盤 6. touchscreen或navigation:鍵盤或導航方式變化,
如果缺少了keyboardHidden選項 不能防止Activity的銷毀,并且在之後提到的onConfigurationChanged事件中 隻能捕獲豎屏變橫屏的事件 不能捕獲橫屏變豎屏