android的橫豎屏控制失效問題

場景

現在做的項目是同一個包,在手機上做查詢業務,平板辦理業務,所以就需要在手機上面是豎屏,平板上面時橫屏

於是在基類Activity中就有了這段代碼:

@Override
protected void onResume() {
        super.onResume();
    if (DisplayUtil.isPad(mContext)) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
    } else {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
}

以爲達到效果了,但是不盡人意!!

發現問題

發現在不同的activity跳轉的過程中總是倒轉(橫屏倒是橫屏。。。。)

尋找問題

找了‘半天’想到了manifest文件,有對部分activity設置方向,因爲這代碼最開始是爲phone開發的,所以就有之前的activity都有這麼一行代碼

android:screenOrientation="portrait"

解決問題

刪掉manifest中的  screenOrientation  ,問題解決

爲什麼

在activity加載過程中,是先去manifest加載配置,如果設置了豎屏,那麼在這個過程設備方向就被重置了,然後在加載代碼,這時再設置屏幕橫屏,就默認是 SCREEN_ORIENTATION_LANDSCAPE(0),而不是SCREEN_ORIENTATION_REVERSE_LANDSCAPE(8),在沒有搖晃設備的情況下也就不再改變方向;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章