目前,我已经陷入了一种非常讨厌的" bug"我假设所有Pre-Lollipop Android版本。看来(支持)片段不会应用他们被分配到的活动主题。为了使我的解释更容易,请进行以下演示:
我的应用程序首先以绿松石主题运行。让我们说,用户决定将绿松石主题更改为红色主题。他或她重新启动应用程序并受到以下欢迎:
(在Android 4.4.2平板电脑上截图)
可怕的景象,不是吗?但是,如果我在Android L的模拟器中运行相同的应用程序,整个主题问题似乎都不存在。
对于平板电脑的截图,有一件事情看起来很奇怪。片段本身并不应用主题,但片段中的子组件(稍后添加)(如带有由ViewPager托管的感叹号的视图)采用并应用主题,就像没有发生任何事情一样。
我不太确定问题可能是什么。我已按照每份可用文件中的说明完成了所有工作。我在相应的活动中调用setContentView(resource)
之前设置了主题。我尝试用ContextThemeWrapper
来做这个伎俩,但没用。
相关代码:
onCreate()
onCreateView()
我试图解决这个问题已经好几天了,我仍然无法找出为什么这不起作用。我还没有找到合适的答案而且会喜欢一些建议。
答案 0 :(得分:0)
我一直是自己愚蠢的受害者。我对项目设置进行了仔细研究,发现了这个:
我的平板电脑从sw600dp文件夹中获取其布局资源,但我忘记更改相应的布局以获取属性而不是硬编码颜色。我想在犯了这么愚蠢的错误后我必须退休。