我正在尝试将屏幕方向锁定到调用应用程序时的位置,以便在屏幕旋转时不会崩溃(是的,我已经使用了
机器人:configChanges = “取向| keyboardHidden”
并且它在低版本的Android上运行良好,但似乎对于较高的版本它应该是
机器人:configChanges = “取向| keyboardHidden |屏幕尺寸”
并且较低的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),结果是: 当我以纵向方向启动应用程序时,它工作正常。屏幕方向锁定为纵向模式。 但是,当我以横向方向进行时,它会不断改变方向。
我做错了什么? 提前致谢
答案 0 :(得分:1)
您的方向配置问题在于,即使设备在启动应用时处于横向方向,仍会以纵向模式创建应用,然后根据需要切换到横向。一般来说,除非是游戏,否则你不应该强迫方向。您应该修复该应用,以便在方向更改时不会崩溃。
答案 1 :(得分:0)
在使用方法2时,你不能创建Configuration.ORIENTATION_PORTRAIT
的常量并将其与getOrient
进行比较。然后,如果它们相等,则将其设置为纵向,否则将其设置为横向。