移动到 1/3 屏幕宽度时不调用 onConfigurationChanged

onConfigurationChanged not called when moving to 1/3 screen width

我正在更新我的 Android 应用程序以支持 Android 中的多 window 模式 7. 由于应用程序已经在 onConfigurationChanged 中处理旋转更改,我想处理 window 尺寸变化方式相同。所以,我更新了 AndroidManifest.xml 以包括 android:configChanges="orientation|keyboard|keyboardHidden|screenSize|screenLayout" 我的活动。

这在调整 windows 大小时按预期工作,因此我的应用程序占据了屏幕的 2/3 或 1/2:调用了 onConfigurationChanged,并且我的 activity 没有重新启动。但是当我将我的应用程序调整为 1/3 屏幕大小或从 1/3 屏幕大小调整时(因此我的应用程序仅占用屏幕的 1/3,而另一个应用程序占用剩余的 2/3),该应用程序的行为就好像我没有这些 configChanges值:未调用 onConfigurationChanged,我的 activity 已重新启动。

我检查了 configChanges 的可能值,但没有看到任何其他看起来相关的值。

是否有任何理由让它以这种方式工作,或者这是一个 Android 错误?我是 运行 Android 7.1.2 Google Pixel C 平板电脑。

根据 Preparing for multi-window blog post,您需要处理多个 window 的最小 configChanges 集合是:

android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"

您缺少 smallestScreenSize,这会在您 Activity 的最小宽度发生变化时发生。