我已经看到了多个线程,但我无法找到问题的解决方案。我想创建一个自定义操作栏,所以开始我只是尝试了一些简单的自定义颜色:
<style name="CustomActionBarTheme"
parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">#FF0000</item>
</style>
然后在Manifest
我有:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/CustomActionBarTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
我的MainActivity
也extends ActionBarActivity
我收到错误消息说我需要将Theme.AppCompat
应用于Activity
,但我不再收到该错误。我的应用程序编译并运行,但操作栏只是标准的黑色,而不是红色(#FF0000)。
最终我想让我的操作栏透明,但我想我会先把它整理好。任何帮助,将不胜感激。
答案 0 :(得分:2)
如documentation所述,为了兼容复古,您应该使用actionBarStyle
和android:actionBarStyle
:
<style name="CustomActionBarTheme"
parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">#FF0000</item>
</style>
答案 1 :(得分:0)
如果您想要灵活性,请使用工具栏而不是ActionBar。我不认为你可以使默认操作栏透明,你可以使用工具栏实现。在这里阅读更多http://android-developers.blogspot.de/2014/10/appcompat-v21-material-design-for-pre.html
答案 2 :(得分:0)
使用新的AppCompat-v7(v21)ActionBar样式的属性需要引用应用程序命名空间,即没有android:
前缀。