我需要根据屏幕的物理大小更改布局中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进行,或者我有以编程方式工作以实现这一目标?
答案 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>