我必须设置以编程方式创建的TextView
的样式。
如何以编程方式实施style="@style/test"
?
我已经查看了Android developer style documentation,但它没有回答我的问题。有什么想法吗?
答案 0 :(得分:25)
目前不支持动态样式更改。您必须在创建视图之前设置样式(在xml中)。
答案 1 :(得分:3)
setTypeface(Typeface.DEFAULT_BOLD, Typeface.BOLD_ITALIC);
它对我有用
答案 2 :(得分:2)
您可以将样式传递给视图的构造函数。这可以通过两种方式完成:
使用ContextThemeWrapper
并将您的风格设置为主题:
ContextThemeWrapper wrappedContext = new ContextThemeWrapper(yourContext, R.style.test);
TextView testView = new TextView(wrappedContext, null, 0);
这里重要的注意事项 - 要使用ContextThemeWrapper
正确设置样式,我们必须使用三参数构造函数并将defStyleAttr
参数设置为0.否则,默认按钮样式将应用于视图。
从API 21开始,我们可以使用带有4个参数的构造函数:
View (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
defStyleRes
是您的样式ID
使用相同的注释 - defStyleAttr应为0