我在我的 Android 设备上遇到了一个奇怪的问题(或者可能是意外行为)。
问题是我正在监听 DialogFragment 中的配置更改,如下所示:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Do something secret here :)
}
我将 android:configChanges
添加到负责显示对话框 fragment 的 Activity 中
<activity
android:name=".SecretActivity"
android:configChanges="orientation|screenSize"
android:windowSoftInputMode="adjustResize" />
确实,当我旋转设备时,我会收到来自系统的回调,但并非在所有情况下都如此。正如您在图片中看到的那样,onConfigurationChanged()
仅在我旋转 90 度和 360 度时调用,在其他情况下不调用。
这是预期的行为吗? 如果是,我如何检测所有旋转(90、180、270、360)?
最佳答案
如果您的 Activity 具有未指定的屏幕方向,设备通常会忽略 180° 旋转并且仅支持一个横向方向。
要支持所有方向,请添加显式 screenOrientation
Activity list 条目的属性:user
或 sensor
,具体取决于您是否要支持用户锁定设备方向。
关于java - 180 度和 270 度不调用 onConfigurationChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54219366/