【问题标题】:Android can use wrong layout file for single-orientation activitiesAndroid 可以为单向活动使用错误的布局文件
【发布时间】: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


【解决方案1】:

而不是sensorLandscape,试试风景。我很确定它有效。

【讨论】:

  • 我刚刚尝试过——landscape 产生与sensorLandscape 完全相同的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多