【发布时间】:2011-11-09 10:33:01
【问题描述】:
我偶然发现,如果您有一个设置为一个方向的 Activity,但包含一个用于不同方向的单独布局文件,则当 Activity 首次启动时,它将被与 设备的物理方向和不是与Activity的方向匹配的布局文件。因此,如果 AndroidManifest.xml 指定
<activity
android:name=".activities.LandscapeGardener"
android:screenOrientation="sensorLandscape">
<!-- note for new readers: sensorLandscape is like landscape, but also
works upside-down.
Other activity stuff would go here. -->
</activity>
并且layout-port文件夹中有LandscapeGardener的布局,如果Activity是纵向加载的,纵向特定的布局会膨胀。
顺便说一下,我们遇到这种情况的原因是,我们正在开发的 Activity 存在一些特定于纵向的错误,因此我们决定在修复用户的同时抑制纵向模式 — 当然,这个问题会导致压制有点偏!
请注意,如果设备在启动时方向正确,则不会更改为不正确的布局。
【问题讨论】:
-
只是好奇,添加
android:configChanges="orientation"有什么不同吗? -
这是在启动;如果你从横向开始,它不会改变布局。
-
这可能是个愚蠢的问题,但 LandscapeGardener 的意思是“景观”,而不是方向,对吧? (比如,一个可以园艺的地方)否则你在 layout-port 文件夹中有一个横向锁定的布局。
-
我选择名称
LandscapeGardener是为了开玩笑,但在Activity名称不会影响功能的意义上,您是对的:您也可以将其称为PortraitPainter并且如果您将其设置为,它将在横向上工作。
标签: android orientation