2
我想在啓動時設置子活動的方向。方向必須在運行時而不是XML中設置。所以我把它的代碼放在onCreate()中。我也有如何在佈局/繪圖發生之前更改屏幕方向?
android:configChanges="orientation|screenSize"
在清單中的活動。但是當活動開始時,它首先以錯誤的方向繪製屏幕,然後進行更改。我如何消除這種情緒?
它與這個線程有點相關:how to define the screen orientation before the activity is created?。另外,我知道我的活動只開始一次,因爲我正在處理配置更改。
這是我在的onCreate代碼:
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
orientation = sharedPref.getString("orientation_pref", "Auto");
setOrientation(orientation);
setContentView(R.layout.grid);
出於某種原因,它加載R.layout文件後,它改變了方向。
我無法在XML中執行此操作,因爲它是由用戶設置的偏愛。它閃爍是因爲它首先在主屏幕方向進行佈局,然後切換到用戶指定的任何位置。我希望它跳過第一個佈局。 –
嘗試一個如果然後與用戶pref在oncreate爲setContentView並手動將其設置爲土地或肖像xml。我在答案中添加了代碼。 –
我不是指佈局文件,我的意思是它實際上是在切換到橫向之前在肖像中繪製屏幕。他們都使用相同的layout.xml文件。我把代碼設置爲setContentView之前的方向,由於某種原因,它設置了它在繪製視圖之後的方向。 –