Android 活动没有';在多窗口模式下,当窗口大小为2/3时,在方向更改时重新启动
我在多窗口模式下遇到方向更改问题。 当平板电脑设备中的窗口大小为2/3(在多窗口模式下)时,更改方向不会重新启动活动。因此,我的布局看起来不合适 当窗口大小为多窗口模式下显示大小的1/2或1/3时,更改方向时,活动将正确重新启动。 我用Nexus7和PixelC设备在(AndroidStudio)Emulator中用Oreo和Pie图像验证了这一点 我的应用程序以Oreo 8.1为目标,我没有在清单中使用“android:configChanges”或“android:screenOrientation” 请注意,2/3的窗口大小不是正方形,两个方向的屏幕大小都有一个小的变化,如果方向变化没有触发,那么屏幕大小的变化应该触发活动重新启动 复制步骤:Android 活动没有';在多窗口模式下,当窗口大小为2/3时,在方向更改时重新启动,android,user-interface,multi-window,Android,User Interface,Multi Window,我在多窗口模式下遇到方向更改问题。 当平板电脑设备中的窗口大小为2/3(在多窗口模式下)时,更改方向不会重新启动活动。因此,我的布局看起来不合适 当窗口大小为多窗口模式下显示大小的1/2或1/3时,更改方向时,活动将正确重新启动。 我用Nexus7和PixelC设备在(AndroidStudio)Emulator中用Oreo和Pie图像验证了这一点 我的应用程序以Oreo 8.1为目标,我没有在清单中使用“android:configChanges”或“android:screenOrienta
我是否遗漏了导致此问题的原因?或者这是一个bug还是别的什么?在这种情况下,如何重新启动我的活动?一个有趣的问题,我从来不知道方向更改过程中会有例外。我能够通过Pixel C模拟器(Android 8.1)和针对API级别26的应用程序重现这个问题 我认为您的屏幕不仅仅是另一个列表,因为在这种情况下,12像素的差异(1688与1676,如果我可以信任的话)并不重要,所以我想添加一个可能有用的观察结果: 我的应用程序包含一个自定义的
视图
,从日志中我可以看到它的方法onMeasure()
和onLayout()
被调用,即使活动
的onCreate()
没有被调用。因此,这就是您可以介入并进行一些微调的地方
另一个选项是强制重新创建
活动
。您可以在检测到屏幕尺寸已更改时,立即调用活动
方法重新创建()
(文档化)。要跟踪屏幕大小的变化,您可以创建一个自定义的视图组
覆盖onLayout()
,并将其用作活动
布局文件的根。谢谢,在您提供的信息的帮助下,我能够在活动未自动(2/3窗口大小)时重新创建(重新启动)该活动.我注意到,在R上,活动不仅没有重新创建,甚至没有通过onStart
/onStop
。此外,我的设备上只有½屏幕分屏停止