通常将设备旋转90度(从竖屏到横屏或反之)会导致配置更改,Activity被销毁和重新创建等操作,因此可以在开始时仅保存
然而,当直接从0度旋转设备到180度(从竖屏到竖屏),或者从90度旋转到270度(从横屏到横屏)时,不会进行配置更改,设备只是重新映射屏幕。这是有道理的,因为布局的宽高比没有改变,也不需要进行更改。但这使得Activity无法检测到这种变化,例如当
除了轮询
Display.getRotation()
的值并使用它来工作。然而,当直接从0度旋转设备到180度(从竖屏到竖屏),或者从90度旋转到270度(从横屏到横屏)时,不会进行配置更改,设备只是重新映射屏幕。这是有道理的,因为布局的宽高比没有改变,也不需要进行更改。但这使得Activity无法检测到这种变化,例如当
Surface.ROTATION_90
变为Surface.ROTATION_270
等。除了轮询
Display.getRotation()
之外,是否有更好的方法来检测这种变化?
OrientationEventListener
中旋转角度的定义与Surface
类相反,但仍然可以正常工作。 - S.D.