我的layout-normal-land和layout-normal-port文件夹中有其他布局,并且系统会根据启动时是否将设备保持在陆地或港口中来正确调用它们。我的问题是,启动应用程序后旋转设备时,它试图以某种方式使已显示的视图适应新情况,从而造成混乱。
如何告诉系统在执行过程中应切换到备用布局?

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

最佳答案

通过包括

android:configChanges="orientation"


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

自动处理效果非常好。仅在有特定原因的情况下才应覆盖它。

在正常操作中(没有上面的清单条目),方向开关会导致当前活动被关闭,然后以新的方向重新打开,从而从当前活动的资源文件夹中重新加载所有资源和布局。该过程遵循所谓的“ Activity Lifecycle”。

如果包含上面的清单条目,则是说:“我将自己处理所有更改。不要关闭我的活动”,因此,您有责任从活动中删除所有不需要的布局,并用您现在需要的布局替换它们。当前方向。

关于android - 设备方向更改不会更改布局,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9135570/

10-12 00:13
查看更多