setTextAppearance不会影响文本内容

时间:2014-05-05 08:20:27

标签: android textview android-styles

嗯,在运行时将样式应用于setTextAppearance对象时,TextView出现问题。

我在布局中定义了这个:

<TextView style="@style/Proximity_Far" android:id="@+id/tvNearFar" />

/res/values/styles.xml我定义了这个:

<style name="Proximity">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">match_parent</item>
    <item name="android:gravity">center</item>
    <item name="android:textStyle">bold</item>
</style>
<style name="Proximity_Near" parent="Proximity">
    <item name="android:textSize">140dp</item>
    <item name="android:textColor">#ff00ff05</item>
    <item name="android:text">Near!</item>
</style>
<style name="Proximity_Far" parent="Proximity">
    <item name="android:textSize">70dp</item>
    <item name="android:textColor">#ffff0079</item>
    <item name="android:text">Far!</item>
</style>

您可以看到我已在每种样式Proximity_NearProximity_Far中设置了文字。 那么我调用函数setTextAppearance以便在视图上更改样式以及tvNearFar的显示文本:

tvNearFar.setTextAppearance(getApplicationContext(), R.style.Proximity_Near);

但这仅影响文本样式,文本内容保持不变。 谁能解释一下这个?我正在使用Android Studio,当我在设计时更改布局文件中的样式ID时,我可以看到这种变化,但它在运行时不起作用。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

来自Android开发者documentation

  

public void setTextAppearance(Context context,int resid)

     

从指定的TextAppearance资源设置文本颜色,大小,样式,提示颜色和突出显示颜色。

不应该更改字符串。在这种情况下,“样式”表示textStyle粗体/正常/斜体。

您必须单独设置字符串以达到您想要的效果。