[英]Changing theme of an activity without recreating activity
我有一项活动。 在按钮单击按钮上我想要更改主题,但在任何地方我都发现主题只能设置一次,而且在setContentView之前也是如此。 重启活动对我来说不是一个选择。 也许使用attrs必须解决这个问题。 但我不知道如何使用它。 请帮忙!!
提前致谢!!
从相关文档来看,这是不可能的:
public void setTheme(int resid)
为此上下文设置基本主题。 请注意,应该在Context中实例化任何视图之前调用它(例如在调用setContentView(View)或inflate(int,ViewGroup)之前)。
所以你必须在调用setContentView()
之前用setTheme()
设置主题,之后就不可能改变它。 您唯一的选择是重新创建Activity
。
顺便说一句:那你说,重新创建Activity
是不是一种选择似乎不可思议, Activities
有一个明确定义的生命周期,并通过坚持这个生命周期应该可以重新创建Activity
往往你或Android OS怎么过想。 事实上,您应该知道Android操作系统可以随时杀死和重新创建您的Activity
,这实际上是Android的正常和预期行为。 因此,重新创建Activity
不是一个选项似乎表明你的应用程序设计中存在一个更深层次的根本问题,即使没有解决也会表现出来。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.