【发布时间】:2015-05-19 16:51:44
【问题描述】:
我正在尝试在运行时设置我的 Activity 的主题,选择多个主题之一。我希望所选主题在 Activity 启动时立即显示。
在清单的<application> 部分中,我使用android:theme="@style/AppTheme" 设置了默认主题。然后在我的onCreate() 中,我使用setTheme(R.style.DarkAppTheme) 将主题设置为用户选择的主题(将DarkAppTheme 替换为选定的主题)。
根据研究,setTheme() 似乎应该在 onCreate() 和 setContentView() 之前,我就是这样做的。
但是,尽管这可以在用户选择的主题中显示 Activity,但 Activity 首先加载看起来像默认主题的内容,然后在短暂延迟后加载正确的主题。
如果我直接在清单中设置用户选择的主题,它会立即加载,但当然这是硬编码的,我想根据共享偏好动态更改它。
如何避免可见的转换?我希望从一开始就显示用户选择的主题。
谢谢。
【问题讨论】:
-
你找到解决办法了吗?
标签: android themes android-manifest