平台:4.3
API等级:18
的AndroidManifest.xml:
<uses-sdk
android:minSdkVersion="18"
android:targetSdkVersion="18" />
值-V14 \ styles.xml:
<resources>
<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
</style>
<style name="CustomActionBarTheme"
parent="@style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar"
parent="@style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/actionbar_background</item>
</style>
我是一个Android新手。非常感谢!
答案 0 :(得分:88)
这样做:
"android:style/Theme.Holo.Light.DarkActionBar"
你在风格之前错过了android
关键字。这表示它是Android的内置风格。
答案 1 :(得分:14)
确保您已将项目属性(不是清单)中的目标API(与目标SDK不同)设置为至少4.0 / API 14。
答案 2 :(得分:9)
@android对我不起作用。当我使用android(没有@)时,它就像一个魅力。
示例:
<style name="CustomActionBarTheme"
parent="android:style/Theme.Holo.Light.DarkActionBar">
答案 3 :(得分:3)
这里的新手教程中存在一个重大错误: http://developer.android.com/training/basics/actionbar/styling.html
这很重要,因为几乎不可能检测到新手的错误原因。
错误是本教程明确指出该教程对api level 11(Android 3.0)有效,而实际上这仅适用于主题Theme.Holo(没有进一步的扩展和变体)
但本教程使用主题Theme.holo.Light.DarkActionBar,它只是来自api level 14(Android 4.0)及以上版本的有效主题。
这只是这些教程中发现的错误的许多示例之一(在其他方面都很棒)。有人应该在本周末纠正这些错误,因为它们真的很贵,而且时间很烦人。如果有办法我可以将此信息发送给Android团队,那么请告诉我,我会这样做。但是,希望他们阅读Stackoverflow。 (让我建议:Android团队应该考虑让一些新手尝试所有教程作为他们有效的资格)。
我(和无数其他人)发现的另一个错误是,如果你严格遵循教程,appcombat后向合规模块真的不起作用。错误未知。我不得不放弃。
关于此主题中的错误,以下是教程文本中引用不匹配斜体的引用:
” 仅适用于 Android 3.0 及更高版本
仅支持 Android 3.0 及更高版本时,您可以像这样定义操作栏的背景:
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@style/Theme.Holo.Light.DarkActionBar">
错误1:只有Theme.Holo可以与Android 3.0一起使用。因此,删除“Light.DarkActionBar等。
错误2:@ style / Theme.Holo“&gt;不起作用。有必要编写@android:style / Theme.Holo”&gt;以表明它是一个被引用的内置主题。 (有点奇怪,“内置”不是默认值,但需要说明吗?)
纠错的编译器建议是将api级别14定义为最小sdk。这不是最佳的,因为它会导致对Andreoid 3.0(api level 11)的不合规。因此,我只使用Theme.Holo,这似乎工作正常(虽然是一个新的发现)。
我正在使用支持Android的Netbeans。很好地工作。
答案 4 :(得分:1)
如果你使用android studio,这可能对你有用。
我遇到了类似的问题,我通过将默认C:\ Program Files(x86)\ Android \ android-studio \ sdk中的skd路径更改为C:\ Program Files(x86)\ Android \ android-来解决此问题sdk。
似乎问题来自编译器版本(gradle将其自动设置为sdk文件夹中可用的最高版本),该版本不支持此主题,并且因为android studio在其sdk文件夹中只有api 7 ,它给了我这个错误。
有关如何在Android Studio中更改Android sdk路径的详细信息:Android Studio - How to Change Android SDK Path
答案 5 :(得分:0)
此外,如果您尝试使用CustomActionBarTheme,请确保
<application android:theme="@style/CustomActionBarTheme" ... />
AndroidManifest.xml中的
不是
<application android:theme="@android:style/CustomActionBarTheme" ... />
答案 6 :(得分:0)
你可以改变这个 parent attribute =&#34; android:style / Theme.Holo.Light.DarkActionBar&#34;