(摘轉)Android橫豎屏切換小結
阿新 • • 發佈:2018-11-19
實際的專案從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