Android Studio - 渲染问题,属性文本大小无效

时间:2015-09-04 11:55:53

标签: android xml android-layout android-studio android-styles

我正在尝试通过应用程序添加动态字体更改设置。我使用了典型的样式和attr方法,但我收到了这个警告。

  

渲染问题"?attr / font_medium"在属性" textSize"不是有效的格式。 (16个类似的错误未显示)

示例TextView

<TextView
                    android:id="@+id/labelWeeks"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:paddingLeft="2dp"
                    android:paddingRight="2dp"
                    style="@style/TextViewStyle"
                    android:textColor="@color/app_white"/>

我的style.xml有这个

 <style name="TextViewStyle">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:text">@string/app_name</item>
    <item name="android:ellipsize">end</item>
    <item name="android:textSize">?attr/font_small</item>
</style>

和attr.xml有这个

<declare-styleable name="FontStyle">
    <attr name="font_small" format="dimension" />
    <attr name="font_medium" format="dimension" />
    <attr name="font_large" format="dimension" />
</declare-styleable>

那么,这个警告是什么以及如何重新开始

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您的attr.xml文件与?attr / some_attribute引用无关。 <declare-styleable>标记用于定义自定义视图属性,例如View has&#34; layout_width&#34;和&#34; layout_height&#34;等(learn more about declare-styleable

要定义自定义维度,请使用res / values / dimens.xml文件,并按如下方式定义值:

<resources>
    <dimen name="font_small">12sp</dimen>
    <dimen name="font_medium">14sp</dimen>
    <dimen name="font_large">16sp</dimen>
</resources>

然后引用它们:

<style name="TextViewStyle">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:text">@string/app_name</item>
    <item name="android:ellipsize">end</item>
    <item name="android:textSize">@dimen/font_small</item>
</style>