android - ICS 中似乎被忽略的主题

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

我正在构建一个为其 Activity 使用一些主题的应用程序。它们在运行 Android 前 ICS 版本的手机上都能正常工作,但出于某种原因,当我在 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 中,并在我的 list 中引用如下:

<activity
        android:name=".activity.SplashActivity"
        android:theme="@style/BlueStyle"
        android:configChanges="orientation|keyboardHidden|screenSize"/>

就像我说的,类似的主题(在 res/values 下,使用 @android:style/Theme.NoTitleBar 作为父级)对同一个 Activity 工作正常在 Android 的 pre-ICS 版本中。即使我进入布局文件并制作布局的背景 @color/Blue,如果我将主题分配给 Activity,它仍然是黑色的。但是,我发现,如果我将主题设置为 @android:style/Theme.NoTitleBar,则 Activity 将使用我在布局文件中强制设置的蓝色。

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

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

编辑: 还忘了说,当我的 Activity 启动时,我确实在一瞬间看到了蓝色,但随后背景变成了黑色。不确定该信息是否有帮助。

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

最佳答案

从外观上看,主题化 Activity 在 Honeycomb 及更高版本中简直是破烂不堪。我通过删除特定于 Activity 的主题并将样式添加到我的布局文件来“解决”我的问题。

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

关于android - ICS 中似乎被忽略的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11368787/

相关文章:

android - 在 greenDao 中添加索引列的正确方法?

android - 在 RelativeLayout 中设置 minHeight,禁用 alignBaseline?

android - 如何在 android 中测量 View 或 View 组膨胀时间?

jquery - 所选元素下方的导航栏线

linux - 我设置了 .bashrc 但我的 promt 看起来还是一样

android - 错误 :In <declare-styleable> SherlockSpinner, 找不到属性 android:popupPromptView

java - 无法恢复值(value),为什么?

android - 使用计算机名称的套接字连接有问题吗?

Android 两种ListView的间距和布局

html - 如何阻止 flex 元素离开容器