从维度传递layout_weight引用(维度)

时间:2012-02-27 08:16:59

标签: android android-layout android-linearlayout

我需要为不同的屏幕尺寸设备设置不同的布局权重,我想传递维度文件中的值,问题是维度文件中的引用不断抛出错误

error: Error: Integer types not allowed (at 'progress_widget_item3_weight' with value '9').

error: Error: Float types not allowed (at 'progress_widget_item3_weight' with value '9.1').

<dimen name="progress_widget_item3_weight">9</dimen>

如何传递layout_weight的dimens文件中的值?谢谢

2 个答案:

答案 0 :(得分:50)

您可以使用integer来声明和引用整数,而不是维度。

integers.xml中的示例声明:

<resources>
    <integer name="left">1</integer>
    <integer name="right">2</integer>
</resources>

布局中的示例参考:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <FrameLayout
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="@integer/left" />

    <FrameLayout
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="@integer/right" />

</LinearLayout>

答案 1 :(得分:3)

我认为你不能那样做。 xml文件中的文档仅显示float(无dimension),而不是layout_width,例如dimension

您可以在各种与屏幕相关的布局中使用硬编码的float值。