我偶然发现,如果你有一个设置为一个方向的 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 有一些特定于肖像的错误,因此我们决定在修复这些错误时禁止用户使用肖像模式——当然这个问题会导致打压有点偏!
请注意,如果设备在启动时方向正确,则不会更改为不正确的布局。
最佳答案
而不是 sensorLandscape,尝试仅横向。我很确定它有效。
关于Android 可以为单向 Activity 使用错误的布局文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8063698/