似乎在ICS中忽略了主题

时间:2012-07-06 19:49:47

标签: android android-layout styles themes android-4.0-ice-cream-sandwich

我正在构建一个为其活动使用一些主题的应用。它们在运行Android前ICS版本的手机上工作得很好,但出于某种原因,当我在Galaxy Nexus(运行4.1)和Nexus S(运行4.0.4)上应用主题时,背景总是黑色。 / p>

这是我使用过的主题之一:

<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作为父级)适用于Android前ICS版本中的相同活动。即使我进入布局文件并制作布局@color/Blue的背景,如果我将主题分配给活动,它仍然是黑色的。但是,我发现如果我将主题设置为@android:style/Theme.NoTitleBar,那么Activity将使用我在布局文件中强制使用的蓝色。

我也尝试将BlueStyle设置为整个应用程序的主题,但它没有任何区别。

之前有其他人遇到过此问题吗?这是我第一次尝试支持pre-v11和v11 +主题,所以我可能会犯一些非常明显的错误。

编辑:还忘了提到我的活动开始时我确实看到了蓝色的瞬间,然后背景变黑了。不确定该信息是否有帮助。

编辑#2:我刚刚在运行3.2的Galaxy Tab 10.1上进行了测试,它也存在问题。

2 个答案:

答案 0 :(得分:1)

从事物的外观来看,主题活动在Honeycomb及以上版本中完全被破坏了。我通过删除特定于Activity的主题并将样式添加到我的布局文件来“解决”我的问题。

如果遇到此问题,请确保在将Android主题应用到布局之前从AndroidManifest.xml中的“活动”中删除主题。否则,问题将持续存在。

答案 1 :(得分:-1)

在.xml中,在主题选项下选择的顶部的themelayout是什么。同时选择下拉框并单击打开然后声明adn确保xml正好在那里以及在android amnifest中。

我注意到即使由于某种原因改变了样式,它也会立即接受它们,我必须多次保存它们。