我正在更新我的安卓应用以支持安卓 7 中的多窗口模式。由于应用程序已经处理了 onConfigurationChanged 中的旋转更改,因此我想以相同的方式处理窗口大小更改。因此,我更新了 AndroidManifest.xml,为我的活动包含android:configChanges="orientation|keyboard|keyboardHidden|screenSize|screenLayout"
。
在调整窗口大小时,这将按预期工作,因此我的应用程序占据屏幕的 2/3 或 1/2:调用 onConfigurationChanged,并且我的活动不会重新启动。但是,当我将我的应用程序大小调整为 1/3 屏幕大小或从屏幕大小调整时(因此我的应用程序仅占用屏幕的 1/3,而另一个应用程序占用剩余的 2/3(,该应用程序的行为就像我没有这些 configChanges 值一样:不调用 onConfigurationChanged,并且我的活动重新启动。
我检查了 configChanges 的可能值,但没有看到任何其他看起来相关的值。
它有什么理由以这种方式工作,还是这是一个 Android 错误?我在Google Pixel C平板电脑上运行Android 7.1.2。
根据准备多窗口博客文章,处理多窗口所需的最小configChanges
集是:
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
您缺少smallestScreenSize
,这发生在活动的最小宽度更改时。