我需要为不同的屏幕尺寸设备设置不同的布局权重,我想传递维度文件中的值,问题是维度文件中的引用不断抛出错误
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文件中的值?谢谢
答案 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
值。