簡體   English   中英

指定橫向后,如何防止Android Activity短暫進入縱向模式?

[英]How can I prevent Android Activity from briefly entering portrait mode when I have specified landscape?

我已指定我的“活動”應固定為橫向,這在大多數情況下都有效。 具體來說,當Activity已在運行時,並且我從Eclipse啟動了它的新實例時 ,Activity在Portrait中啟動,並立即更改為Landscape,但是在View被告知是Portrait之前沒有。 因此,我的View初始化為Portrait,但立即獲得了surfaceChanged。

我在清單中指定了以下內容:

    <activity android:screenOrientation="landscape"
        android:configChanges="orientation|keyboardHidden"

我也嘗試過:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

當我定位到API級別7時,我相信這可以正常工作。 現在我以API level8為目標,並且出現了一個奇怪的怪癖。

在oncreate方法中,值是:

getResources().getConfiguration().orientation

是:

Configuration.ORIENTATION_PORTRAIT

創建“活動”后,方向立即更改為“風景”,我得到一個surfacechanged ,並且可以“修復”所有內容。 但是為什么要肖像呢?

我懷疑這與應用程序從縱向屏幕啟動時自動旋轉的事實有關。 指示該應用程序永遠不會處於縱向狀態的應用程序以這種方式啟動,然后迅速進行更改,這似乎很奇怪。

但是,有沒有辦法讓它永遠不會出現在肖像中?

我把它放在我的Activity的onCreate

while (getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) 
{
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

這導致它永遠卡在那里:)

將此添加到您的活動中:

@Override 
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);     
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
} 

在清單中定義方向。

screenOrientation =“ landscape”

要么

在活動中的setContentView(...)之前設置setRequestOrientation(...)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM