【问题标题】:setTextAppearance doesn't affect text contentsetTextAppearance 不影响文本内容
【发布时间】:2014-05-05 08:20:27
【问题描述】:

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

我在布局中定义了这个:

<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 时,我可以看到这种变化,但它在运行时不起作用。

任何帮助将不胜感激。

【问题讨论】:

    标签: android textview android-styles


    【解决方案1】:

    来自Android开发者documentation

    public void setTextAppearance(上下文上下文,int resid)

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

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

    您必须单独设置 String 才能达到您想要的效果。

    【讨论】:

    • 这让我有点失望,因为在 Html 和 CSS 中我可以使用 :after 伪类附带 content 属性来更改项目内的内容。 :(
    • 当您发现没有 css 样式的方式来添加边框、圆角或阴影时,您会更加失望
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2013-06-29
    • 2016-04-05
    • 1970-01-01
    • 2018-06-21
    相关资源
    最近更新 更多