Android:支持片段不应用活动主题?

时间:2015-01-13 20:00:48

标签: android android-layout android-fragments android-styles

目前,我已经陷入了一种非常讨厌的" bug"我假设所有Pre-Lollipop Android版本。看来(支持)片段不会应用他们被分配到的活动主题。为了使我的解释更容易,请进行以下演示:

我的应用程序首先以绿松石主题运行。让我们说,用户决定将绿松石主题更改为红色主题。他或她重新启动应用程序并受到以下欢迎:

Android 4.4.2 tablet: the theme doesn't apply to the fragment

(在Android 4.4.2平板电脑上截图)

可怕的景象,不是吗?但是,如果我在Android L的模拟器中运行相同的应用程序,整个主题问题似乎都不存在。

Android 5.0.1: the theme applies to the fragment

对于平板电脑的截图,有一件事情看起来很奇怪。片段本身并不应用主题,但片段中的子组件(稍后添加)(如带有由ViewPager托管的感叹号的视图)采用并应用主题,就像没有发生任何事情一样。

我不太确定问题可能是什么。我已按照每份可用文件中的说明完成了所有工作。我在相应的活动中调用setContentView(resource)之前设置了主题。我尝试用ContextThemeWrapper来做这个伎俩,但没用。

相关代码:

我试图解决这个问题已经好几天了,我仍然无法找出为什么这不起作用。我还没有找到合适的答案而且会喜欢一些建议。

1 个答案:

答案 0 :(得分:0)

我一直是自己愚蠢的受害者。我对项目设置进行了仔细研究,发现了这个:

enter image description here

我的平板电脑从sw600dp文件夹中获取其布局资源,但我忘记更改相应的布局以获取属性而不是硬编码颜色。我想在犯了这么愚蠢的错误后我必须退休。