是否可以在xml中保存layout_weight?

时间:2012-10-26 11:33:45

标签: android xml android-layout

我需要根据屏幕的物理大小更改布局中3个视图的layout_weight。视图的权重为0-1-0,但在xlarge屏幕中使用布局时,这必须更改为0.2-0.6-0.2。

我尝试在dimension.xml的不同副本中保存layout_weight(一个在values / dimensions中,另一个在values-xlarge / dimensions中),但看起来我不能在不设置dp / px或w的情况下给出维度/ e(无法保存"原始"数字,如1或0.2)。

是否有可能以某种方式通过xml进行,或者我以编程方式工作以实现这一目标?

4 个答案:

答案 0 :(得分:9)

尝试整数资源文件。它与尺寸非常相似。

http://developer.android.com/guide/topics/resources/more-resources.html

答案 1 :(得分:5)

在相应的values文件夹中创建一个文件,即values, values-large, values-xlarge, ...。添加包含与此示例类似的内容的资源文件:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <item type="integer" name="layout_weight_xy">7</item>
</resources>

然后致电

android:layout_weight="@integer/layout_weight_xy"

在你的布局文件中。

答案 2 :(得分:2)

您可以在layout-xlarge文件夹中创建特殊布局,并在那里提供不同的权重

答案 3 :(得分:0)

首先,定义您的资源,例如integer.xml,并确保设置正确的类型格式。如果您想将其用于layout_weight,可以设置type="integer" format="float"

<item name="my_weight_value" type="integer" format="float">1.2</item>

然后我们可以在布局中使用它

 <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="@integer/my_weight_value"
        android:orientation="vertical">
 </LinearLayout>