2017-01-11 6 views
0

私はアクションバーにいくつかのメニューでアンドロイドアプリを構築しています。ここにmenu.xmlがあります。サブセレクションアイコンをカラーセレクターで色づける方法は?

<menu> 
<item 
     android:id="@+id/menu_comment" 
     android:icon="@drawable/gsm_comment_selector" 
     android:title="@string/COACH_COMMENT" 
     app:showAsAction="always"/> 

    <item 
     android:id="@+id/menu_more" 
     android:icon="@drawable/menu_more_selector" 
     android:title="@string/MORE" 
     app:showAsAction="always"> 
     <menu> 
      <item 
       android:id="@+id/menu_share" 
       android:icon="@drawable/menu_share_selector" 
       android:title="@string/SHARE"/> 
      <item 
       android:id="@+id/menu_help" 
       android:icon="@drawable/menu_help_selector" 
       android:title="@string/HELP"/> 
     </menu> 
    </item> 
</menu> 

これはXXX_セレクタの外観です。それはdrawableとtemplate_selector(色の状態リスト)を含んでいますので、クリックするとアイコンの色を変えることができます。

<?xml version="1.0" encoding="utf-8"?> 
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
     android:src="@drawable/ic_more_vert_white_24dp" 
     android:tint="@color/template_selector"/> 

結果、menu_commentとmenu_moreを押すと、アイコンの色が変更されます。しかし、menu_shareとmenu_helpはそうではありません。

だから私はそれを修正するために何をすべきですか?あなたは(onCreateOptionsMenuから呼び出される)は、次のような何かを行うことができるはず おかげ

答えて

1

Drawable drawable = DrawableCompat.wrap(menuItem.getIcon()); 
    DrawableCompat.setTint(drawable.mutate(), context.getResources().getColor(tint)); 
    view.setIcon(drawable); 
+0

返信いただきありがとうございます。しかし、それは動作しません。サブメニューを押すと、テキストの色を変更することができます(私はtextPrimaryColorに同じセレクターを追加します)が、アイコンの色はまだデフォルトの色になります。 – Cheng

関連する問題