【问题标题】:How to know device/emulator layout (landscape/portrait) is changed如何知道设备/模拟器布局(横向/纵向)已更改
【发布时间】:2010-05-21 10:01:52
【问题描述】:

我正在使用两个 xml 布局文件 layoutPotrait.xml 和 layoutLandscape.xml。当设备/模拟器处于纵向模式时,我想使用 layoutPortrait.xml 文件设置内容视图,以及何时将模拟器更改为我想要的横向模式使用 layoutLandscape.xml 文件设置内容视图。我怎样才能做到这一点?

【问题讨论】:

  • 如果它对您有用,请通过点击投票左侧的复选标记接受答案

标签: android android-layout


【解决方案1】:

您不需要知道设备是否发生了变化。只需为您想要以两种方式使用的所有布局提供布局文件。

如果您的 Android 设备处于横向模式并且您正在加载布局,Android 系统将查看该布局文件是否存在于 /res/layout-land 文件夹中。如果此文件夹中不存在,它将从普通的 /res/layout 文件夹加载布局。

只需将文件命名相同,然后将名为 layoutPortrait.xml 的文件放在 /res/layout 文件夹中,将 layoutLandscape.xml 放在 /res/layout/land 文件夹中。如果该文件夹不存在,请创建它。

【讨论】:

    【解决方案2】:

    要为不同的方向使用不同的布局,请将它们放在适当的文件夹中: 请参阅Dev Guide on alternative resources(屏幕方向部分)。 有关根据方向更改更改布局的更多信息,请参阅this 文章。

    【讨论】:

      【解决方案3】:

      按键盘上的 Ctrl-F11 或 Ctrl-F12。 有关更多命令和热键,请参阅Offical manual。

      【讨论】:

      • 非常感谢,但是当我按下 Ctrl-F12 时,我想用不同的布局文件设置内容视图。如何在源代码中做到这一点??
      • 我在上面的答案中链接了一篇显示示例的文章,使用 onConfigurationChange 查找代码。
      • 是的,@android_novice 询问的是编码,而不是控制模拟器。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多