如何以编程方式更改android中的主题

时间:2014-07-30 15:12:38

标签: android android-activity android-actionbar android-search

我正在为Actionbar使用actionbarsherlock,默认情况下会设置一个主题。在searchview扩展后,我需要更改我的操作栏的主题,我正在执行下面的

@Override
public boolean onMenuItemActionExpand(MenuItem item) {
    // TODO Auto-generated method stub
    setTheme(R.style.CalendarTheme);
    return true;
}

新主题没有得到反映,我在Manifest文件中的其他活动中使用的主题相同,效果很好。如何在android中动态更改主题?

1 个答案:

答案 0 :(得分:0)

在实例化任何视图后,您无法更改活动的主题。

来自setTheme(int) documentation

  

请注意,应在上下文中实例化任何视图之前调用此方法(例如在调用setContentView(View)inflate(int, ViewGroup))之前。

您可以手动更改视图的样式,但无法更改主题。