目前不支持动态样式更改。您必须在视图创建之前(在xml中)设置样式。
Use ContextThemeWrapper
and setup your style as a Theme for it:
ContextThemeWrapper wrappedContext = new ContextThemeWrapper(yourContext, R.style.test);
TextView testView = new TextView(wrappedContext, null, 0);
这里需要注意 - 要正确使用ContextThemeWrapper
设置样式,我们需要使用三个参数的构造函数,并将defStyleAttr
参数设置为0。否则默认的按钮样式将被应用于视图。
Starting from API 21 we can use constructor with 4 parameters:
View (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
其中defStyleRes
是您的样式ID
同样需要注意的是 - defStyleAttr
应该为0
setTypeface(Typeface.DEFAULT_BOLD, Typeface.BOLD_ITALIC);
对我来说它有效