如何在运行时设置主题?

4

请问有人知道如何在运行时设置主题吗?调用getApplication().setTheme()不能成功设置主题吗?

当用户选择按钮时,我该如何设置主题以使其在我的应用程序中生效?

3个回答

3

在调用setContentView(...)super.oncreate()之前,您可以使用setTheme(..),这样就可以正常工作。


2
我尚未尝试过这个,但这里是ContextWrapper.setTheme(int)的文档:

public void setTheme (int resid)

自API Level 1以来,设置此上下文的基础主题。请注意,这应该在上下文中实例化任何视图之前调用(例如,在调用setContentView(View)或inflate(int,ViewGroup)之前)。

根据这个描述,活动需要被销毁并重新创建(就像在方向或其他配置更改时通常会发生的情况一样),然后在onCreate()中调用setTheme()。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接