2013-12-10 62 views
0

我正在为应用程序中的操作栏执行自定义样式。我已将操作栏更改为我想要的蓝色背景和白色文本,并且工作正常。然而,应用程序标题和图标周围的区域(我认为它是透明区域)显示的是一般主题背景,而不是操作栏背景。因此,而不是透明度的'通过'到行动栏,它正在下降到基本背景。不使用主题颜色的操作栏标题/图标

下面是显示问题的图像(我已将主题背景更改为红色以突出显示该问题)。

the problem

我怎样才能解决这个问题?

这是我的styles.xml文件:

<resources> 

    <style name="MyTheme" parent="@style/Theme.AppCompat"> 
     <item name="android:background">#FF0000</item> 
     <item name="android:textColor">@color/cp_text</item> 
     <item name="android:actionBarStyle">@style/CustomActionBar</item> 
     <item name="android:actionButtonStyle">@style/CustomActionBarButton</item> 
     <item name="android:actionModeBackground">@color/cp_titlebar_background</item> 
    </style> 

    <style name="CustomActionBar" parent="@style/Widget.AppCompat.ActionBar"> 
     <item name="android:background">@color/cp_titlebar_background</item> 
     <item name="android:textColor">@color/cp_text</item> 
     <item name="android:titleTextStyle">@style/CPTitleTextStyle</item> 
    </style> 

    <style name="CPTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
     <item name="android:textColor">@color/cp_text</item> 
     <item name="android:background">@color/cp_titlebar_background</item> 
    </style> 

    <style name="CustomActionBarButton" parent="@android:style/Widget.ActionButton"> 
     <item name="android:background">@color/cp_titlebar_background</item> 
    </style> 

</resources> 

回答

3

通过你的基本主题设置<item name="android:background">#FF0000</item>,所有的意见和窗口小部件会使用他们的背景这个值。

如果您想要为主题中的活动设置背景色,请使用android:windowBackground属性而不是背景。

+1

谢谢。昨晚我通过从主题中删除背景来获得它的工作时间,但后来我不得不手动将背景样式应用于所有我的活动,这感觉有点骇人听闻。 windowBackground是一个更优雅的解决方案,所以我现在正在使用它。 – degs