我的应用有一个floating search view,可以占据整个屏幕宽度。当方向是横向时,它将在导航栏后面,所以我想为它添加一些边距。问题是,当我旋转左侧风景(右侧的导航栏)时,我的浮动视图的右侧部分位于导航栏的后面,当我旋转右侧风景时,左侧部分被覆盖,所以我需要一个正确的方法来知道哪一方增加更多的利润。
我目前有
switch (getWindowManager().getDefaultDisplay().getRotation()) {
case Surface.ROTATION_0:
break;
case Surface.ROTATION_90:
break;
case Surface.ROTATION_180:
break;
case Surface.ROTATION_270:
break;
}
我测试了Surface.ROTATION_90
当设备左旋时(右侧导航栏),但我不知道所有设备是否都是这种情况。我似乎找不到任何定义Surface.ROTATION_90
和Surface.ROTATION_270
之间差异的文档。如果有更好的方法让系统自动调整floating search bar甚至更好。将android:fitsSystemWindows
设置为true无济于事。
答案 0 :(得分:1)
根据文档here:
这应该在所有设备中都相同,即“如果设备逆时针旋转90度,补偿渲染将顺时针旋转90度,因此这里返回的值将是Surface。 ROTATION_90“。
当然,ROTATION_270是相反的方向(右)。但是,ROTATION_90 / 270并不一定意味着横向模式,所以如果你还想知道你也应该检查当前的方向。