嗯,在运行时将样式应用于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_Near
和Proximity_Far
中设置了文字。
那么我调用函数setTextAppearance
以便在视图上更改样式以及tvNearFar
的显示文本:
tvNearFar.setTextAppearance(getApplicationContext(), R.style.Proximity_Near);
但这仅影响文本样式,文本内容保持不变。 谁能解释一下这个?我正在使用Android Studio,当我在设计时更改布局文件中的样式ID时,我可以看到这种变化,但它在运行时不起作用。
任何帮助都将不胜感激。
答案 0 :(得分:0)
来自Android开发者documentation:
public void setTextAppearance(Context context,int resid)
从指定的TextAppearance资源设置文本颜色,大小,样式,提示颜色和突出显示颜色。
不应该更改字符串。在这种情况下,“样式”表示textStyle粗体/正常/斜体。
您必须单独设置字符串以达到您想要的效果。