1

我可以通過在onCreate中使用setRequestedOrientation以編程方式完美管理方向更改。Android:在創建之前設置活動方向,但不在清單中(HDMI插入問題)

一切工作得很好,直到我插入HDMI電纜。在此之後,平板電腦「希望」處於橫向模式。因此,當我打開一個活動時,它首先在「風景」中顯示,然後在「人像」中顯示後(因爲我打電話給setRequestedOrientation(variable_with_orientation_desired_by_the_user),其中variable=ActivityInfo.SCREEN_ORIENTATION_PORTRAITonCreate正如您可以「看到」一樣,我的應用程序在每個活動用戶打開;

如果我在清單中設置了activity的方向,這個問題部分消失了,因爲清單中的方向與用戶選擇的方向相同,如果它們不同,則相同的行爲再次開始。

我想這一點,但沒有成功:

@Override 
public void onCreate(final Bundle saved) 
{ 
    setRequestedOrientation(ScreenOrientation); 
    super.onCreate(icicle); 
} 

那麼,在它創建它之前,有什麼方法可以告訴android它必須創建我的活動的方向? (但它不能在清單)

+0

給你'setRequestedOrientation(ScreenOrientation);''後super.onCreate(冰柱); '而且,你使用的是什麼版本的API? – Praveenkumar

+0

...真的嗎?他只是說這就是發生意外行爲的原因(因爲活動已創建,並且僅在已經顯示之後設置了方向)。 – matt5784

+0

API:13(3.2)。另外我在super.OnCreate之後嘗試過setRequestedOrientation(ScreenOrientation)。但無論我在哪裏打電話,我都會得到同樣的行爲。正如我所描述的那樣,唯一可行的方法是設置清單中的東西,但我得到副作用。 – Christian

回答

5

我解決它通過設置screenOrientation爲 「落後」 清單文件:

 android:screenOrientation="behind" 
+1

這不是這個方法的用途。請參閱[文檔](http://developer.android.com/guide/topics/manifest/activity-element.html#screen)。 – JVillella

相關問題