设备方向更改不会更改布局

mic*_*ith 1 android

我在layout-normal-land和layout-normal-port文件夹中有替代布局,如果我在启动时将设备放在陆地或端口,系统会正确调用它们.我的问题是,当我启动应用程序后旋转设备时,它会尝试以某种方式使已经显示的视图适应新的情况,造成混乱.如何告诉系统它应该在执行期间切换到备用布局?

一直在试验,发现当我没有android:configChanges ="keyboardHidden | orientation"时,再次调用oncreate,这给出了正确的布局,但它不是我想要的.我不认为这是正常的,是吗?也许是Android中的错误问题(2.3.3.)?

Kuf*_*ffs 7

通过包括

android:configChanges="orientation"
Run Code Online (Sandbox Code Playgroud)

在你的清单中,你说你想自己处理方向改变.如果您希望系统为您处理它,则应将其删除.

自动处理非常有效.如果您有特定原因,则应该仅覆盖它.

在正常操作中(没有上述清单条目),方向开关导致当前活动关闭,然后以新方向重新打开,从当前活动的资源文件夹重新加载所有资源和布局.该过程遵循所谓的" 活动生命周期 ".

如果您包含上述清单条目,则表示"我将自行处理所有更改.请勿关闭我的活动",因此您有责任从活动中删除所有不需要的布局,并将其替换为您现在需要的布局目前的方向.

  • 我现在删除了它,但我在每次设备旋转时都会调用 oncreate 。那不是我想要的。你有什么建议? (2认同)