使用引用而不是layout-land(仅xml)设置LinearLayout方向

时间:2014-09-28 03:56:13

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

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

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

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

<LinearLayout 
    android:orientation="horizontal"/>

VS

<LinearLayout 
    android:orientation="vertical"/>

我虽然喜欢这样的东西:

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

作为一个终极解决方案,我还考虑过只为这个LinearLayout创建一个自定义样式(我不喜欢这个解决方案,但是如果我不能选择另一个选项则必须使用它)。

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

1 个答案:

答案 0 :(得分:13)

  

我想在/ 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"/>