我有一个用于横向和纵向的布局。我在/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 解决方案。
答案 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"/>