Android 橫豎屏切換設(shè)置的 configChanges 和 screenOrientation

與Android橫豎屏相關(guān)的因素兩個:configChanges 和 screenOrientation。

首先看看 configChanges 屬性值:

   (1)orientation:消除橫豎屏的影響

   (2)keyboardHidden:消除鍵盤的影響

   (3)screenSize:消除屏幕大小的影響

在什么都不處理的情況下,我們手機橫豎屏切換時,Activity會重啟,如果不想Activity受影響,我們只要設(shè)置Activity android:configChanges屬性為orientation|screenSize或者orientation|screenSize|keyboardHidden 即可。

接下來看看 screenOrientation ,這個屬性是控制Activity啟動時候的方向,屬性值有:

  (1)landscape---控制Acitvity為橫屏顯示。

  (2)portrait---控制Activity為豎屏顯示

  (3)unspecified--系統(tǒng)默認顯示

  (4)user---用戶當前的首選方向

  (5)behind---與當前堆棧下面的Activity同向

  (6)sensor---根據(jù)傳感器定(常用)

  (7)nosensor---忽略傳感器;系統(tǒng)根據(jù)unspecified顯示

熟悉上面兩種屬性之后,我的需求是:打開APP,不希望用戶隨意旋轉(zhuǎn)手機導致手機屏幕亂轉(zhuǎn)動,希望在特定界面才設(shè)置可橫豎屏切換并且不影響 Activity 生命周期。

操作:
(1)在 AndroidManifest 的 Activity 配置 中設(shè)置:

   android:configChanges="orientation|screenSize|keyboardHidden"     android:screenOrientation="portrait"

(2)在適當?shù)臅r候,用代碼動態(tài)設(shè)置屏幕根據(jù)傳感器轉(zhuǎn)動,也算解鎖在AndroidManifest 設(shè)置的android:screenOrientation="portrait" :

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容