在横向中,我需要知道导航栏是在屏幕的右侧还是左侧,以便我可以使用 WindowInsets 将填充应用于 LinearLayout 以防止 LinearLayout 与导航栏重叠。
问问题
432 次
1 回答
0
我最终使用OrientationEventListener
which 返回设备的方向,其degrees
形式orientation
为Toast
横向,哪个是横向,它很hacky,但可以完成工作。纵向范围为0-50,横向范围为55-120,反向横向> 250,但如果方向迅速,则可以低至200已更改。-1 的方向表示设备平放在表面上。在反向横向中navigation bar
,在右侧,而在横向中,在左侧。
orientationListener = new OrientationEventListener(this,
SensorManager.SENSOR_DELAY_NORMAL) {
@Override
public void onOrientationChanged(int orientation) {
if(orientation>250){//reverse landscape
isReverse=true;
}
else {
isReverse=false;
}
}
};
if (orientationListener.canDetectOrientation()) {
orientationListener.enable();
} else {
orientationListener.disable();
}
于 2020-10-31T15:25:04.740 回答