android如何在代码中给组件设置style?

RT,不要提TextView了,全部都是告诉我TextView.setTextAppearance(),我要的是别的组件,比如LinearLayout之类的,如何在代码中设置他的style
我看了下源代码,style都是在初始化的时候通过TypedArray解析style然后一条条属性加进去的,那么有没有类似style这样的方法,可以动态设置的

没有C币了,多多包涵下,谢谢了

参考Android: set view style programatically
试试使用ContextThemeWrapper或者上面链接提到的其他方法,希望能有帮助

用到那个style就用的时候加载设置即可。

该问题长期有效,我现在的解决办法是自定义一个容器组件,继承LinearLayout,然后给它添加自定义标签属性,然后代码中设置属性,然后重新绘制界面

回答中说的ContextThemeWrapper仅限于在code中初始化一个view,我尝试在code中将已有的ContextThemeWrapper重新set一个style,然后将那个view重新postInvalidate,但是UI并没有改变

//oncreate中
button = new Button(contextThemeWrapper = new ContextThemeWrapper(mActivity, R.style.test));
layout_wrap.addView(button, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));

//另一个button的onclick事件
contextThemeWrapper.setTheme(R.style.test1);
button.postInvalidate();

使用布局填充器填充起来