我有一个显示指南针的活动,我需要知道屏幕的方向以正确旋转针.我需要区分90°和270°旋转才能正确处理.
当我旋转屏幕(至少在我的Nexus S上)时,onCreate会调用活动,例如当我从纵向模式旋转到横向模式时.当我从一个横向模式旋转到另一个横向边缘凸起时,onCreate()会被调用两次(一次用于纵向,一次用于目标横向模式).
但是,当我以底边向上旋转时,屏幕旋转180°并且onCreate不会被调用.在这种情况下会有被触发的事件吗?
我的Android设备上遇到了一个奇怪的问题(或者可能是意外的行为).
问题是我正在我的DialogFragment中监听配置更改,如下所示:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Do something secret here :)
}
Run Code Online (Sandbox Code Playgroud)
我添加android:configChanges了Activity,它负责显示对话框片段
<activity
android:name=".SecretActivity"
android:configChanges="orientation|screenSize"
android:windowSoftInputMode="adjustResize" />
Run Code Online (Sandbox Code Playgroud)
事实上,当我旋转设备时,我正从系统中获得回调,但并非在所有情况下.正如你在onConfigurationChanged( )旋转90度时所看到的图片中所看到的那样,以及360度,在其他情况下它不会被调用.
这是预期的行为吗?如果是,我如何检测所有旋转(90,180,270,360)?