Android:旋转到风景

问题描述:

我有一个Android应用程序,它具有处理方向更改(清单中的android:configChanges="keyboardHidden|orientation")的活动。它还有一个调用超类的onConfigurationChanged处理程序。Android:旋转到风景

设备旋转后,活动保持纵向模式。整个屏幕处于奇怪的状态,X轴物理地从下到上,Y轴从左到右,状态栏沿着左侧屏幕边缘运行,所有文本都在物理上向上。就好像该系统*不承认方向改变。

我真的很想做什么,我想避免重新开始活动,但是只需仔细地放置几个布局属性翻转来处理方向更改。但是,在上述GUI的状态下,我无法做到这一点。重新加载主布局文件不会改变。

问题 - 我该如何告诉系统切换物理方向,以便XY轴按照他们应该的方式进行切换?

编辑:这里是一个奇怪的数据点:在所有onConfigChanged来电,newConfig.orientation为1

清单中的属性android:screenOrientation="portrait"是责备。有了这个属性,即使让系统重新启动活动也不会将屏幕切换到真正的横向模式。

你真的不应该使用android:configChanges。这种技术被认为是最后的手段。请阅读Handling Runtime Changes了解更多详情。

简要说明:如果您使用android:configChanges它负责处理配置更改事件并重新加载用于新配置的UI资源。当调用时,getResources()已指向从新配置更正资源。您只需手动重新设置新的(可能更改的)值的所有布局,字符串,尺寸,绘图等。


您还没有提到的原因,你决定去与configChanges,而不是正常活动的工作流程。这可能有助于给你一些选择。

+0

我*正在尝试处理配置更改。第一步是让屏幕在横向上工作,对吧?宽度>高度?我在这方面失败了。在onConfigChange()中加载新资源不会执行任何操作 - 它们仍然以人像显示。布局不标记为肖像特定。 –