簡體   English   中英

如何將屏幕旋轉鎖定為當前狀態

[英]How to lock screen rotation to current status

我試圖將屏幕方向鎖定到調用該應用程序時的位置,以免在旋轉屏幕時崩潰(是的,

機器人:configChanges = “方向| keyboardHidden”

而且在Android較低的版本上也能正常工作,但對於較高的Android版本,似乎應該

android:configChanges =“ orientation | keyboardHidden | screenSize”

較低的android版本不支持screenSize參數)。

因此,我嘗試了此解決方案(1):

setRequestedOrientation(getResources()。getConfiguration()。orientation);

而另一(2):

setRequestedOrientation(getScreenOrientation());

哪里,

public int getScreenOrientation()
{
    Display getOrient = getWindowManager().getDefaultDisplay();
    int orientation = Configuration.ORIENTATION_UNDEFINED;

        if(getOrient.getWidth() < getOrient.getHeight()){
            orientation = Configuration.ORIENTATION_PORTRAIT;
        }else { 
             orientation = Configuration.ORIENTATION_LANDSCAPE;
        }

    return orientation;
}

在兩種情況下(1和2),結果都是:當我以縱向啟動該應用程序時,它運行良好。 屏幕方向鎖定為縱向模式。 但是,當我橫向放置時,它會不斷改變方向。

我做錯了什么? 提前致謝

方向配置的問題在於,即使在啟動應用程序時設備處於橫向方向,該應用程序仍將以縱向模式創建,然后根據需要切換到橫向。 通常,除非是游戲,否則您不應該真正強制定位。 您應該修復該應用程序,以使其在方向更改時不會崩潰。

您是否不能使常量Configuration.ORIENTATION_PORTRAIT只是在使用方法2時將其與getOrient比較。然后,如果它們相等,則將其設置為縱向,否則將其設置為橫向。

暫無
暫無

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

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