2016-04-28 79 views
0

我试图改变我的ActionBar的背景颜色以及标题颜色。我必须说我正在使用支持库。Android更改使用AppCompat的Actionbar背景颜色

我的风格如下。

<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="windowActionModeOverlay">true</item> 
    <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item> 
</style> 

<style name="AppTheme.ActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid"> 
    <item name="background">@color/red_300</item> 
    <item name="android:background">@color/red_300</item> 
    <item name="colorPrimary">@color/red_300</item> 
    <item name="android:titleTextStyle">@style/AppTheme.ActionBar.Title</item> 
</style> 

<style name="AppTheme.ActionBar.Title" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="android:textColor">@color/red_700</item> 
    <item name="android:textColorPrimary">#00FF00</item> 
</style> 

而且在款式-V21

<style name="AppTheme.ActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid"> 
    <item name="background">@color/red_300</item> 
    <item name="android:background">@color/red_300</item> 
    <item name="colorPrimary">@color/red_300</item> 
    <item name="android:colorPrimary">#FF0000</item> 
    <item name="android:colorAccent">#FF0000</item> 
    <item name="android:titleTextStyle">@style/AppTheme.ActionBar.Title</item> 
</style> 

<style name="AppTheme.ActionBar.Title" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="android:colorPrimary">#FFFF00</item> 
    <item name="android:colorAccent">#FFFF00</item> 

    <item name="android:textColor">@color/red_700</item> 
    <item name="android:textColorPrimary">#00FF00</item> 
</style> 

正如你们可能会被attemps改变它的量看,我已经失去了我的脑海里。任何关于如何改变ActionBar背景和它的标题颜色的线索?

我必须指出,我在Android 6.

+0

改变动作条的颜色,你将不得不改变primaryColor在color.xml文件。和改变标题颜色。尝试删除或添加android前缀时所做的一样。 –

+0

我知道我可以通过colorPrimary更改它,但我不想在基本主题中更改它。任何方式来做一些更具体的风格? – HelderMPinhal

+0

你有没有试过在代码中做它? –

回答

1

尝试这一工具栏创建(XML),设置app:theme固定它。用它的colorPrimary指定一个主题,改变了ActionBar的背景,而不影响基本主题。

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 

</android.support.design.widget.AppBarLayout> 

和主题:

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.ActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
</style>