我正在构建一个为其活动使用一些主题的应用。它们在运行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上进行了测试,它也存在问题。
答案 0 :(得分:1)
从事物的外观来看,主题活动在Honeycomb及以上版本中完全被破坏了。我通过删除特定于Activity的主题并将样式添加到我的布局文件来“解决”我的问题。
如果遇到此问题,请确保在将Android主题应用到布局之前从AndroidManifest.xml中的“活动”中删除主题。否则,问题将持续存在。
答案 1 :(得分:-1)
在.xml中,在主题选项下选择的顶部的themelayout是什么。同时选择下拉框并单击打开然后声明adn确保xml正好在那里以及在android amnifest中。
我注意到即使由于某种原因改变了样式,它也会立即接受它们,我必须多次保存它们。