[英]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.