【问题标题】:Set LinearLayout Orientation using references instead of layout-land (only xml)使用引用而不是 layout-land 设置 LinearLayout 方向(仅限 xml)
【发布时间】:2014-09-28 03:56:12
【问题描述】:

我有一个用于横向和纵向的布局。我在/layout/layout-land 文件夹中有它。唯一的区别是android:orientation

我希望/layout 中只有 1 个 xml,因为它更易于维护。我想改用/values/values-land。这可能吗?

我现在拥有的是(删除了不必要的代码):

<LinearLayout 
    android:orientation="horizontal"/>

<LinearLayout 
    android:orientation="vertical"/>

我想到了类似的东西:

<LinearLayout 
    android:orientation="@xxxx/linear_orientation"/>

作为最终解决方案,我还考虑过仅为此 LinearLayout 创建自定义样式(我不喜欢此解决方案,但如果我无法提供其他选项,则必须使用它)。

注意:我知道可以在 java 上执行此操作,但我正在寻找 xml-only 解决方案。

【问题讨论】:

    标签: android android-layout android-linearlayout android-xml android-resources


    【解决方案1】:

    我希望 /layout 中只有 1 个 xml,因为这样更容易 维持。我想改用 /values 和 /values-land 。这是 可能吗?

    是的,这是可能的。您可以使用 Style 来实现。

    /values下styles.xml中的样式:

    <style name="LinearLayoutOrientation" >
        <item name="android:orientation">vertical</item>
    </style>
    

    /values-land 下的styles.xml 中的样式:

    <style name="LinearLayoutOrientation" >
        <item name="android:orientation">horizontal</item>
    </style>
    

    LinearLayout 的最终 xml 代码:

     <LinearLayout 
        style="@style/LinearLayoutOrientation"/>
    

    【讨论】:

    • 是的,这是我的终极解决方案。我希望不要仅为 1 个属性创建自定义样式。只是听起来不太好。
    • @gian1200 抱歉,我没有仔细阅读您的问题。我不知道除了java之外的其他解决方案来实现这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多