2017-08-23 12 views
0

私は材料のテーマを試して、メニューやアイテムの背景とテキストの色を変更しようとしています。下のスタイルを使用すると、ツールバー上でうまく動作しますが、デバイスメニューボタンを押している間にメニューがポップアップすると、背景が変わってもテキストの色に変化はありません。上記のテキストの色を変更するのを助けてください。 enter image description hereAndroidメニューのテキストの色の変更

<resources> 

<style name="MyMaterialTheme" parent="MyMaterialTheme.Base"> 

</style> 

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="android:textColorPrimary">@color/accent</item> 
    <item name="android:textColorSecondary">@color/accent</item> 
    <item name="android:textColorHint">@color/accent</item> 

    <!-- Menu Items --> 
    <item name="android:textColor">@color/accent</item> 
    <item name="android:actionMenuTextColor">@color/accent</item> 
    <item name="actionMenuTextColor">@color/accent</item> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
    <item name="android:itemBackground">@color/colorPrimaryDark</item> 
    <item name="android:itemTextAppearance">@style/MyActionBar.MenuTextStyle</item> 

    <!-- Menu Items --> 
</style> 



<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> 
    <item name="background">@color/colorPrimaryDark</item> 
    <item name="titleTextStyle">@style/MyActionBarTitle</item> 
    <item name="actionMenuTextColor">@color/accent</item> 

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

</style> 
<style name="MyActionBar.MenuTextStyle"> 
    <item name="android:textColor">@color/accent</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:actionMenuTextColor">@color/accent</item> 
    <item name="actionMenuTextColor">@color/accent</item> 
</style> 

+0

あなたの質問を解決した回答があれば、今後のユーザー参照のために受け入れてください。 – Abhi

答えて

1

この目を適用するよりも、このテーマ

<style name="TextAppearance" parent="@style/Theme.Sherlock.Light"> 
    <item name="actionMenuTextColor">@color/white</item> 
    <item name="android:actionMenuTextColor">@color/white</item> 
</style> 

を作成し、これを試してくださいこの

<style name="your_theme" parent="your_parent"> 
    <item name="android:itemTextAppearance">@style/TextAppearance</item> 
</style> 

またはあなたがstyle.xmlに新しいスタイルを追加することによって、オーバーフローメニューの背景の色を変更することができ、この

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.your_menu, menu); 

    int positionOfMenuItem = 0; 
    MenuItem item = menu.getItem(positionOfMenuItem); 
    SpannableString s = new SpannableString("My red MenuItem"); 
    s.setSpan(new ForegroundColorSpan(Color.RED), 0, s.length(), 0); 
    item.setTitle(s); 
} 
+0

こんにちはNilesh、あなたの提案のおかげで、それはシャーロックなしで行うことができますか?私はそれを私の既存のプロジェクトにインポートしようとしましたが、多くのコンパイルエラーが発生しました –

+0

@BharatKumar chekはプログラムで設定しようとしました –

+1

こんにちはNilesh、あなたの2番目の提案が動作します。ありがとう。私はスタイル/テーマからいくつかのソリューションを探していましたが、これは私の問題を解決するので、私は今あなたの答えを受け入れています。 –

0

あなたのテーマで一つの簡単なライン:)

<item name="android:actionMenuTextColor">@color/your_color</item> 
+0

こんにちはPrashanna、すでに私のテーマのbtには色の変更はありません..pls私は質問と一緒に更新したコードを確認してください –

0

を試すようなあなたの活動のテーマでEME。

<style name="OverflowMenu" 
parent="@android:style/Theme.Holo"> 
<item name="android:popupMenuStyle">@style/MyOverflowMenu</item> 
<item name="android:itemTextAppearance">@style/TextAppearance</item> 
</style> 
<style name="MyOverflowMenu" 
parent="@android:style/Widget.Holo.ListPopupWindow"> 
<item name="android:popupBackground">@color/your_color</item> 
</style> 
<style name="TextAppearance"> 
<item name="android:textColor">@color/your_color</item> 
</style> 
+0

これをもう一度試してみましたが、テキストの色は変更されませんでした... –

関連する問題