2015-04-21 11 views
7

Sto usando la barra degli strumenti e uso l'opzione per le azioni corrispondenti. Il mio problema è che voglio mostrare "SAVE" sulla barra degli strumenti con il colore bianco, applico molti stili ma appare sempre nero. Ma quando l'opzione appare come popup, il colore del testo è sempre bianco. Io google molto, ma non ho soluzione.Cambia il colore del testo del menu delle opzioni quando usiamo app: showAsAction = "always"

Ecco il mio codice:

barra degli strumenti

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 

    xmlns:app="http://schemas.android.com/tools" 
    android:id="@+id/my_awesome_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    app:theme="@android:style/ThemeOverlay.Material.Light" 
    app:popupTheme="@style/Theme.AppCompat.NoActionBar" 
    android:background="@drawable/tb_header" 
    android:minHeight="?attr/actionBarSize"/> 

stili

<style name="MStyle" parent="Theme.AppCompat.Light.NoActionBar"> 

<item name="android:windowBackground">@android:color/white</item> 
     <item name="android:colorBackground">@android:color/black</item> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorAccent">@color/colorAccent</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="android:textAllCaps">false</item> 
     <item name="android:popupMenuStyle">@style/MyPopupMenu</item> 
     <item name="android:panelBackground">@android:color/holo_green_light</item> 
     <item name="android:actionBarWidgetTheme">@style/AppTheme</item> 

    </style> 

<style name ="MyPopupMenu" parent="android:Theme.Holo.Light"> 
     <item name="android:popupBackground">@android:color/holo_green_light</item> 
    </style> 


****Option menu**** 

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.doubtfire.userprofiles.ParentProfileActivity"> 
    <item 
     android:id="@+id/action_skip" 
     android:title="@string/menu_str_skip" 

     android:orderInCategory="100" 
     app:showAsAction="always" /> 
</menu> 


****I even apply code at onPrepareOptionMenu**** 



    @Override 
     public boolean onPrepareOptionsMenu(Menu menu) { 
      for (int i=0; i<menu.size(); i++) { 
       MenuItem mi = menu.getItem(i); 
       String title = mi.getTitle().toString(); 
       Spannable newTitle = new SpannableString(title); 
       newTitle.setSpan(new ForegroundColorSpan(Color.WHITE), 0, newTitle.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
       mi.setTitle(newTitle); 
      } 
      return true; 
     } 

risposta

8

Usa

<item name="android:actionMenuTextColor">#FFFFFF</item> 

in MStyle, come viene mostrato di seguito:

<style name="MStyle" parent="Theme.AppCompat.Light.NoActionBar"> 

    ... 

    <item name="android:actionMenuTextColor">#FFFFFF</item> 
    <!-- for appcompat--> 
    <item name="actionMenuTextColor">#FFFFFF</item> 
</style> 

Questo cambiamento di colore della voce di menu quando SALVA articolo sarà visibile sul ActionBar

+0

Questo non funziona :( – theLazyFinder

+0

Forse non ti ho capito. Vuoi cambiare il testo della voce di menu sulla barra d'azione? Che diritto? Se sì questo dovrebbe opere. Hai aggiunto il tuo stile al 'Attività in Manifesto? –

+0

Sì, voglio esattamente quello che dici e ho aggiunto questo tema all'app nel tag dell'applicazione come – theLazyFinder

2

Per modificare il colore del testo in uso Toolbar menu sottostante il codice.

<style name="MStyle" parent="Theme.AppCompat.Light.NoActionBar"> 
     .... 

      <item name="actionMenuTextColor">#FFFFFF</item> 

</style> 
+0

L'ho usato anche in tentativi precedenti, questo non funziona – theLazyFinder

+0

questo è lavoro, grazie fratello – mustafasevgi

Problemi correlati