1. 程式人生 > >(摘轉)Android橫豎屏切換小結

(摘轉)Android橫豎屏切換小結

實際的專案從activity-a跳轉到B,在b的oncreate中設定        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);在b finish()之後回到activity  a,結果會出現兩次轉屏的現象,後來在b finish之前呼叫了setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);就不會出現此現象了。

六、對於setRequestedOrientation函式的補充說明

在上述(二)對於手動觸發橫豎屏切換的時候,我們用到了setRequestedOrientation,那時只是簡單做了下演示,後來發現還是需要做下補充說明的:

首先在非重啟Activity模式下

手動呼叫setRequestedOrientation之後,假如會引發橫豎屏切換(即請求的橫豎屏要求與當前的橫豎屏情況不一致,就會引發切換),那麼會立即呼叫onConfigurationChanged函式;假如不會引發橫豎屏切換(請求前後一致),那麼也就不會呼叫到onConfigurationChanged函式。

這個手動呼叫setRequestedOrientation的地方也可以在Activity中的任何地方,即也可以在onConfigurationChanged中呼叫,但是一旦指定為橫屏或豎屏完成這個變換之後,後面不論螢幕如何進行怎麼翻轉變化,都不會再觸發橫豎屏切換了,也即等同於在manifest中設定了android:screenOrientation屬性為橫屏或豎屏。如果要恢復為響應橫豎屏隨物理感測器裝置變換,那麼就需要手動呼叫類似如下程式碼進行恢復:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);


https://www.cnblogs.com/franksunny/p/3714442.html