我可以将@string资源用于布局属性,例如layout_height with dip吗?

时间:2013-12-30 14:45:38

标签: android xml

我想在Android布局XML中使用param进行相同的对齐。像一些TextView使用相同的layout_height。 (我知道它可以使用样式,但我发现Android样式不支持多父。)所以我想为此使用一个参数。

这是我的解决方案: layout.xml

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TextView
            android:text="test"
            android:layout_width="match_parent"
            android:layout_height="@string/text_height"/>
 </LinearLayout>

并在string.xml中

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="test_height">40dip</string>
</resources>

我发现它在Eclipse ADT预览中有效。但是当我在真实设备上运行时,它崩溃并显示:

java.lang.RuntimeException: Binary XML file line #23: You must supply a layout_height attribute.

我想知道该怎么办?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

如果你想要的只是声明一些维度,只需使用<dimen>资源而不是<string>

in values / values.xml声明:

<dimen name="test_height">48dp</dimen>

并在布局文件中使用它:

    <TextView
        android:text="test"
        android:layout_width="match_parent"
        android:layout_height="@dimen/test_height"/>