【问题标题】:How to set different layouts for different orientations in a fragment如何为片段中的不同方向设置不同的布局
【发布时间】:2015-11-23 07:19:30
【问题描述】:

我有一个包含 3 个片段的活动。其中 2 个在列表视图中有数据,因此当用户旋转屏幕时一切正常。但是在我的第三个包含按钮的片段中,当用户将屏幕旋转到横向时,一切都会误入歧途!

我的第三个纵向片段

我的第三个风景片段!

我什至尝试过使用滚动视图,但它不起作用,因为在横向时我不希望中间有那么大的空间。 在横向时我不需要 3 x 2 按钮排列(我有 6 个按钮。)。我想我只能通过为我的片段使用 2 个 xml 布局来实现这一点。

问题是我该怎么做?

【问题讨论】:

  • @SaiPhani 我将如何在我的片段中调用它,因为它不会被整个活动使用,而只有我片段?
  • 你不需要专门打电话。使用与您的第 3 个片段相同的名称定义您的布局,并在末尾附加 -land。 Android 会自动调用它。如果您的片段名称是third_fragment.xml。创建一个名为 third_fragment-land.xml 的新 xml。检查此链接stackoverflow.com/questions/4858026/…
  • @SaiPhani 让我现在试试,我会告诉你结果。不要走开(求求你:))
  • @SaiPhani 很好的指导,很大的帮助。我终于实现了我想要的。非常感谢。 (见下面我的结果(答案))
  • 很高兴它帮助了你

标签: android android-layout android-fragments android-scrollview


【解决方案1】:

res下创建另一个布局文件夹layout-land,并在此文件夹下创建横向布局文件

【讨论】:

  • 我将如何在我的片段中调用它(或使用它)?
  • 什么都不做,剩下的交给安卓。
  • @gikarasojokinene 你不需要专门打电话。使用与您的第三个片段相同的名称定义您的布局,并在末尾附加-land。 Android 会自动调用它。如果您的片段名称是third_fragment.xml。创建一个名为 third_fragment-land.xml 的新 xml。检查此链接stackoverflow.com/questions/4858026/…
【解决方案2】:

sai Phani 的大力帮助下(见上面他的 cmets)。我终于实现了我的目标,即通过执行以下操作为我的片段创建横向布局。

  • src\main\res下创建一个文件夹,命名为layout-land
  • 复制src\main\res\layout 中的片段布局xml(例如peoplefragment.xml)并将其粘贴到src\main\res\layout-land 文件夹中。 请勿更改文件名!
  • 粘贴后,您可以更改视图对齐方式,使其显示在横向上。对于我的 sutuation,我希望它们在风景中看起来像这样

【讨论】:

  • 它是否有效,如果它动态改变方向
【解决方案3】:

您可以设计适合纵向和横向的布局,但您可以自定义两种方向。 查看关于同一问题的 SO 链接@Android: alternate layout xml for landscape mode。这个想法只是按照 Google 文档中指定的正确方式创建文件夹名称。

一个好的谷歌网页是@Supporting Multiple Screens,搜索“使用配置限定符”。有一个表格说明方向和要使用的文件夹名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    相关资源
    最近更新 更多