以编程方式为TextView设置样式

263

我正在尝试使用带有样式的 TextView 构造函数,就像这样:

TextView myText = new TextView(MyActivity.this, null, R.style.my_style);

不过,当我这样做时,文本视图似乎没有采用样式(我通过在静态对象上设置样式来验证了这一点)。

我还尝试使用myText.setTextAppearance(MyActivity.this, R.style.my_style),但它也无效。

13个回答

3
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) 
    textView.setTextAppearance(R.style.yourStyle)

1
你可以使用Kotlin扩展函数。
fun TextView.setStyle(@StyleRes resId: Int) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        setTextAppearance(resId)
    } else {
        setTextAppearance(context, resId)
    }
}

-1

我只测试了EditText,但您可以使用以下方法:

public void setBackgroundResource (int resid)

来应用在XML文件中定义的样式。

由于此方法属于View,因此我相信它适用于任何UI元素。

祝好。


1
根据文档,这仅适用于可绘制对象,而不适用于样式。因此,如果这确实有效,那只是“偶然”,您不应该依赖它。 - Heinzi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接