Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 活动没有';在多窗口模式下,当窗口大小为2/3时,在方向更改时重新启动_Android_User Interface_Multi Window - Fatal编程技术网

Android 活动没有';在多窗口模式下,当窗口大小为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

我在多窗口模式下遇到方向更改问题。 当平板电脑设备中的窗口大小为2/3(在多窗口模式下)时,更改方向不会重新启动活动。因此,我的布局看起来不合适

当窗口大小为多窗口模式下显示大小的1/2或1/3时,更改方向时,活动将正确重新启动。 我用Nexus7和PixelC设备在(AndroidStudio)Emulator中用Oreo和Pie图像验证了这一点

我的应用程序以Oreo 8.1为目标,我没有在清单中使用“android:configChanges”或“android:screenOrientation”

请注意,2/3的窗口大小不是正方形,两个方向的屏幕大小都有一个小的变化,如果方向变化没有触发,那么屏幕大小的变化应该触发活动重新启动

复制步骤:

  • 在平板电脑设备中以调试模式启动应用程序
  • 在onCreate和onResume中放置断点
  • 将其置于多窗口模式(默认大小为1/2)
  • 旋转设备并检查断点是否触发(它会触发)
  • 将窗口大小调整为2/3
  • 旋转设备并检查断点是否触发(它不会!)

  • 我是否遗漏了导致此问题的原因?或者这是一个bug还是别的什么?在这种情况下,如何重新启动我的活动?

    一个有趣的问题,我从来不知道方向更改过程中会有例外。我能够通过Pixel C模拟器(Android 8.1)和针对API级别26的应用程序重现这个问题

    我认为您的屏幕不仅仅是另一个列表,因为在这种情况下,12像素的差异(1688与1676,如果我可以信任的话)并不重要,所以我想添加一个可能有用的观察结果:

    我的应用程序包含一个自定义的
    视图
    ,从日志中我可以看到它的方法
    onMeasure()
    onLayout()
    被调用,即使
    活动
    onCreate()
    没有被调用。因此,这就是您可以介入并进行一些微调的地方


    另一个选项是强制重新创建
    活动
    。您可以在检测到屏幕尺寸已更改时,立即调用
    活动
    方法
    重新创建()
    (文档化)。要跟踪屏幕大小的变化,您可以创建一个自定义的
    视图组
    覆盖
    onLayout()
    ,并将其用作
    活动
    布局文件的根。

    谢谢,在您提供的信息的帮助下,我能够在活动未自动(2/3窗口大小)时重新创建(重新启动)该活动.我注意到,在R上,活动不仅没有重新创建,甚至没有通过
    onStart
    /
    onStop
    。此外,我的设备上只有½屏幕分屏停止