【问题标题】:Switch LinearLayout from horizontal to vertical on orientation change在方向更改时将 LinearLayout 从水平切换到垂直
【发布时间】:2014-02-12 08:02:26
【问题描述】:

我的应用程序有各种线性布局,我希望它们在纵向时是垂直的,而在横向时是水平的。我知道我可以手动跟踪 onLayoutChange 并在代码中更改它们,但这会使它们在 XML 编辑器中更难使用,我不禁觉得应该有一种更简单的方法。我真正想要的是:

  <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation_when_in_portrait="vertical"
            android:orientation_when_in_landscape="horizontal" >

我知道这不存在,但是有什么方法可以实现吗?我不禁想到,可能有一种方法可以用我缺少的 RelativeLayout 来做到这一点。

【问题讨论】:

    标签: android


    【解决方案1】:

    我强烈建议您阅读 Android 开发者网站上的 providing resources 指南。你可能特别感兴趣in this section.

    为了更直接地回答你的问题。您可以通过将当前布局 xml 文件复制到名为“layout-land”的新文件夹并更改 LinearLayout 的必要属性来获得所需的行为。如果设备处于横向模式,Android 将使用此文件夹加载您的布局文件。如果在“layout-land”文件夹中找不到给定的 xml 文件,则默认为“layout”文件夹。

    【讨论】:

    • 道歉 - 我应该提到我也不想创建替代布局(这是一个非常大的布局,这是它唯一会改变的方面)。
    • 您是否可以将特定的 LinearLayout 及其子项分离到它自己的 xml 文件中(然后您可以更改并放置在两个必要的布局文件夹中),然后使用 @987654325 包含 LinearLayout @标签?
    • 哦...如果我这样做 那么如果我在横向,它将包括 layout-land/myspecialone?我认为这肯定会奏效......
    • 我实际上并不能 100% 确定这会奏效,但它似乎会奏效。找出答案的一种方法,对吧?
    • stackoverflow.com/questions/17324110/… 的样子看,我认为这行不通。不过好主意。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多