如何在运行时切换样式

时间:2015-05-08 14:59:52

标签: android styles themes theming

我想在我的应用中使用夜间模式/日模式主题。目前,我所有屏幕均采用日间模式。

我有80多个非常复杂的布局文件,定义了20多种样式(7种文本,微调等)。

选项1:使用_night前缀制作另一组布局,引用_night样式将会有很多工作。

选项2:在运行时切换颜色......很多工作

有没有简单的方法来定义另一个主题?

1 个答案:

答案 0 :(得分:0)

您可以在调用Activity之前在setContentView中设置主题。这样的事情。

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState);
    setTheme(your theme here);
    setContentView(...) 
} 

如果用户在Activity内更改主题,则必须重新启动Activity以查看更改。

http://developer.android.com/reference/android/view/ContextThemeWrapper.html#setTheme(int)