你的第二个exlanation对我来说同样的问题,我使用了你不想要的代码解决方法.
我在res文件夹下添加了4个值文件夹. “values”,“values-v11”,“values-v14”和“values-sw720dp”
所有值文件夹都有“integers.xml”.
“值”和“值-v14”具有值1,其是纵向;
< integer name =“portrait_if_not_tablet”> 1< / integer>.
“values-v11”和“values-sw720dp”具有值2,即用户方向;
< integer name =“portrait_if_not_tablet”> 2< / integer>.
在Manifest文件中,activity有一个属性,如;
机器人:screenOrientation = “@整数/ portrait_if_not_tablet”.
所有“值”,“值-v11”,“值-v14”都按预期工作,但“values-sw720dp”!
在调试时我意识到portrait_if_not_tablet的值在sw720dp设备(带有API 16)上与getResources().getInteger(R.integer.portrait_if_not_tablet)一样,但是当我通过getRequestedOrientation()检查当前方向的值时,我得到了一个不同的值.
int requestedOrientation = getResources().getInteger(R.integer.portrait_if_not_tablet);
int currentOrientation = getRequestedOrientation();
if (currentOrientation != requestedOrientation) {
setRequestedOrientation(requestedOrientation);
}
所以我在我的活动的onCreate方法上使用了一个代码块来解决这个问题.