我试图使用TextView构造函数的风格像这样:
TextView myText = new TextView(MyActivity.this, null, R.style.my_style);
但是,当我这样做时,文本视图似乎没有采用该样式(我通过在静态对象上设置该样式来验证该样式)。
我还尝试使用myText.setTextAppearance(MyActivity. settextappearance)。this, R.style.my_style),但它也不能工作。
我试图使用TextView构造函数的风格像这样:
TextView myText = new TextView(MyActivity.this, null, R.style.my_style);
但是,当我这样做时,文本视图似乎没有采用该样式(我通过在静态对象上设置该样式来验证该样式)。
我还尝试使用myText.setTextAppearance(MyActivity. settextappearance)。this, R.style.my_style),但它也不能工作。
当前回答
这个公认的答案对我来说是一个很好的解决方案。唯一要添加的是关于inflation()方法。
在接受的答案中,所有android:layout_*参数将不会被应用。
原因是没有办法调整它,因为null是作为ViewGroup父项传递的。
你可以这样使用它:
视图视图= inflater. inflation (r.p ayler .layout。View, parent, false);
父类是ViewGroup,从这里你可以调整android:layout_*。
在这种情况下,将设置所有相关属性。
希望对别人有用。
其他回答
我只使用EditText进行了测试,但您可以使用该方法
setBackgroundResource (int residual)
来应用XML文件中定义的样式。
因为这个方法属于视图,我相信它将适用于任何UI元素。
的问候。
这个公认的答案对我来说是一个很好的解决方案。唯一要添加的是关于inflation()方法。
在接受的答案中,所有android:layout_*参数将不会被应用。
原因是没有办法调整它,因为null是作为ViewGroup父项传递的。
你可以这样使用它:
视图视图= inflater. inflation (r.p ayler .layout。View, parent, false);
父类是ViewGroup,从这里你可以调整android:layout_*。
在这种情况下,将设置所有相关属性。
希望对别人有用。
不支持动态更改样式。您必须在创建视图之前通过XML设置样式。
你可以像这样将ContextThemeWrapper传递给构造函数:
TextView myText = new TextView(new ContextThemeWrapper(MyActivity.this, R.style.my_style));
你可以创建一个通用样式,并在多个文本视图上重复使用,如下图所示:
textView.setTextAppearance(this, R.style.MyTextStyle);
Edit:这引用Context对象。