2014-03-26 53 views
16

我正在嘗試更改操作欄上動作菜單項的文本顏色。使用應用程序compat。此外,溢出圖標也不會改變。這是我自定義樣式的styles.xml文件。如何使用AppCompat更改ActionBar的動作文本顏色

RES /值/ styles.xml

<style name="AppTheme" parent="@style/Theme.AppCompat.Light"> 
    <!-- Setting values in the default namespace affects API levels 7-13 --> 
    <item name="actionBarStyle">@style/MyStyledActionBar</item> 
</style> 

<style name="MyStyledActionBar" parent="@style/Widget.AppCompat.Light.ActionBar"> 
    <!-- Setting values in the default namespace affects API levels 7-13 --> 
    <item name="background">@drawable/bg_action_bar</item> 
    <item name="titleTextStyle">@style/MyActionBarTitleText</item> 
    <item name="actionMenuTextAppearance">@style/MyActionBarMenuText</item> 
    <item name="actionMenuTextColor">@style/MyActionBarMenuText</item> 
    <item name="actionOverflowButtonStyle">@style/MyActionButtonOverFlow</item> 
</style> 

<style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="android:textColor">@color/font_half_white</item> 
</style> 

<style name="MyActionBarMenuText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Menu"> 
    <item name="android:textColor">@color/font_half_white</item> 
</style> 

<style name="MyActionButtonOverFlow" parent="@style/Widget.AppCompat.Light.ActionButton.Overflow"> 
    <item name="android:src">@drawable/ic_action_search</item> 
</style> 

RES /值-14/styles.xml

<style name="AppTheme" parent="@style/Theme.AppCompat.Light"> 
    <!-- Setting values in the android namespace affects API levels 14+ --> 
    <item name="android:actionBarStyle">@style/MyStyledActionBar</item> 
</style> 

<style name="MyStyledActionBar" parent="@style/Widget.AppCompat.Light.ActionBar"> 
    <!-- Setting values in the android namespace affects API levels 14+ --> 
    <item name="android:background">@drawable/bg_action_bar</item> 
    <item name="android:titleTextStyle">@style/MyActionBarTitleText</item> 
    <item name="android:actionMenuTextAppearance">@style/MyActionBarMenuText</item> 
    <item name="android:actionMenuTextColor">@style/MyActionBarMenuText</item> 
    <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverFlow</item> 
</style> 

<style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="android:textColor">@color/font_half_white</item> 
</style> 

<style name="MyActionBarMenuText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Menu"> 
    <item name="android:textColor">@color/font_half_white</item> 
</style> 

<style name="MyActionButtonOverFlow" parent="@style/Widget.AppCompat.Light.Base.ActionButton.Overflow"> 
    <item name="android:src">@drawable/ic_action_search</item> 
</style> 

RES/colors.xml #F3F3F3

文字顏色仍然是黑色不會變成白色。有沒有人成功改變了操作菜單的文字顏色。請提出一些見解。我正在測試4.4 Nexus5設備。

enter image description here

回答

15

使用

<item name="android:actionMenuTextColor">@color/font_half_white</item> 
// added style directly 

而不是

<item name="android:actionMenuTextColor">@style/MyActionButtonStyle</item> 

res/values-14/styles.xml

res/values/styles.xml

<item name="actionMenuTextColor">@color/font_half_white</item> 

我用紅色進行測試。見操作菜單項家,就是紅卡

enter image description here

編輯:

全碼

res/values-14/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="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- API 14 theme customizations can go here. --> 
      <item name="android:actionMenuTextColor">@color/red</item> 
    </style> 

</resources> 

然後在res /價值/ stles。 xml

<resources> 
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light"> 
     <!-- API 11 theme customizations can go here. --> 
     <item name="actionMenuTextColor">@color/red</item> 
    </style> 

</resources> 

在清單

機器人:主題= 「@風格/ AppBaseTheme」>

另一個單元

enter image description here

+0

你會分享你的AppTheme風格,以及它如何在AndroidManifest.xml文件中設置。 – Mani

+0

<樣式名稱= 「AppTheme」 父= 「@風格/ Theme.AppCompat.Light」> <項目名稱= 「actionBarStyle」> @風格/ MyStyledActionBar – Mani

+0

@Mani將它添加到自己AppTheme – Raghunandan

1

你可以用它來改變無關的操作欄的文字你appcompat version.Give所需顏色的十六進制代碼並將其添加到onCreate()中。

actionBar.setTitle(Html.fromHtml("<font color='#ff0000'>Some Title</font>")); 
0
  1. 檢查你的佈局XML文件你不必爲你的<Toolbar>指定了android:theme屬性,這將優先於主旋律

  2. 覆蓋您actionBarStyle屬性爲指出遍佈互聯網。

相關問題