Android ActionBar背景被AppTheme Background覆盖

时间:2015-07-06 18:40:34

标签: android xml android-actionbar

我只是想不出这个: 我有一个ActionBar的应用程序,我希望ActionBar为红色,应用程序的背景为蓝色。我尝试用这个styles.xml实现这个目的:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:background">@color/blue</item>
    <item name="background">@color/blue</item>
    <item name="android:layout_marginTop">5dp</item>
    <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">@color/red</item>
    <item name="background">@color/red</item>
</style>

但是actionBar总是蓝色的。当我拿走应用程序的蓝色背景时,actionBar会根据需要变为红色......

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您设置的保证金不明确,不适用于任何内容。您应该在操作栏主题上设置边距:

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/red</item>
    <item name="android:windowBackground">@color/blue</item>
    <item name="actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:layout_marginTop">5dp</item>
</style>

答案 1 :(得分:0)

如果你要做的只是一个蓝色背景的红色操作栏,那么使用支持库的v21 +附带的材料属性要容易得多:

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/red</item>
    <item name="android:windowBackground">@color/blue</item>
</style>

enter image description here