我正在构建一个应用程序,它在活动中使用了一些主题。它们在运行ICS之前版本的Android的手机上都运行得很好,但出于某种原因,当我在Galaxy Nexus(运行4.1)和Nexus S(运行4.0.4)上应用这些主题时,背景总是黑色的。
以下是我使用的一个不起作用的主题:
<style name="BlueStyle" parent="@android:style/Theme.Holo.NoActionBar">
<item name="android:background">@color/Blue</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textSize">16dip</item>
</style>
蓝色在我的res/values/colors.xml
中定义。主题在res/values-v11/styles.xml
中,在我的清单中引用如下:
<activity
android:name=".activity.SplashActivity"
android:theme="@style/BlueStyle"
android:configChanges="orientation|keyboardHidden|screenSize"/>
正如我所说,类似的主题(在res/values
下,使用@android:style/Theme.NoTitleBar
作为父级)适用于ICS之前版本的Android中的相同"活动"。即使我进入布局文件并使布局的背景为@color/Blue
,如果为"活动"分配了主题,它仍然是黑色的。但是,我发现,如果我将主题设置为@android:style/Theme.NoTitleBar
,那么"活动"将使用我在布局文件中强制使用的蓝色。
我也尝试过将BlueStyle设置为整个应用程序的主题,但没有什么区别。
其他人以前也经历过这个问题吗?这是我第一次尝试同时支持v11之前和v11+主题,所以我可能会犯一些非常明显的错误。
编辑:还忘了提一下,当我的"活动"开始时,我确实在一瞬间看到了蓝色,但随后背景变成了黑色。不确定这些信息是否会有所帮助。
编辑#2:我刚刚在运行3.2的Galaxy Tab 10.1上进行了测试,它也有问题。
从事物的外观来看,主题化活动在Honeycomb及以上版本中是完全失败的。我通过删除特定于"活动"的主题并将样式添加到布局文件中来"解决"我的问题。
如果遇到此问题,请确保在将主题应用于布局之前,将其从AndroidManifest.xml中的活动中删除。否则,这个问题将继续存在。
在.xml中,顶部的主题是什么,选择在主题下选项。还要选择下拉框并单击打开,然后解密并确保xml就在那里以及android amnifest中。
我注意到,即使我出于某种原因更改了这些样式,它也会立即接受它们,我也必须多次保存它们。