2015-04-21 26 views
7

Używam paska narzędzi i używam opcji dla odpowiednich działań. Mój problem polega na tym, że chcę pokazać tekst "ZAPISZ" na pasku narzędzi z kolorem białym, stosuję wiele stylów, ale zawsze wyglądam jak czarny. Ale gdy opcja pojawi się jako wyskakujące, kolor tekstu jest zawsze biały. Często googlę, ale nie mam rozwiązania.Zmień kolor tekstu menu opcji, gdy używamy aplikacji: showAsAction = "zawsze"

Oto mój kod:

Pasek

<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"/> 

style

<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; 
     } 

Odpowiedz

8

Zastosowanie

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

w MStyle, jak pokazano poniżej:

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

    ... 

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

Ta zmiana koloru menu gdy pozycja SAVE będzie widoczny na ActionBar

+0

to nie działa :( – theLazyFinder

+0

Może nie zrozumiałem. Czy chcesz zmienić tekst elementu menu na pasku akcji? Tak? Jeśli tak to powinien prace. Czy dodany do Twojego stylu 'Aktywność' w Manifeście? –

+0

Tak, chcę dokładnie to, co mówisz, i dodałem ten motyw do aplikacji w tagu aplikacji jako – theLazyFinder

2

Aby zmienić kolor tekstu w Toolbar używania menu poniżej kodu.

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

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

</style> 
+0

Użyłem tego również we wcześniejszych próbach, to nie działa – theLazyFinder

+0

to jest praca, dzięki bro – mustafasevgi