6

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

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

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

4

4 回答 4

9

尝试一个整数资源文件。它与维度非常相似。

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

于 2012-10-26T11:37:17.653 回答
5

在相应的文件夹中创建一个文件,valuesvalues, 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"

在您的布局文件中。

于 2012-10-26T11:36:53.750 回答
2

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

于 2012-10-26T11:36:54.283 回答
2

首先,定义您的资源,例如 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>
于 2018-04-23T08:52:05.740 回答