2016-09-07 12 views
2

Toolbarのポップアップメニューをカスタマイズしようとしています。今はメニュー項目の背景色を設定できません。メニュー項目の背景色をカスタマイズするにはどうすればいいですか?

私のstyles.xmlは次のようになります。私はホロや他のではないAPPCOMPATを、使用してい:

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme.NoActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 

     <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item> 
     <item name="android:actionMenuTextColor">@color/actionbar_text_color</item> 
     <item name="android:dropDownListViewStyle">@style/AppTheme.DropDown</item> 
     <item name="android:itemTextAppearance">@style/menuItemColor</item> 

     <!-- Support library compatibility --> 
     <item name="actionBarStyle">@style/AppTheme.ActionBar</item> 
     <item name="actionMenuTextColor">@color/actionbar_text_color</item> 
     <item name="dropDownListViewStyle">@style/AppTheme.DropDown</item> 
     <item name="itemTextAppearance">@style/menuItemColor</item> 
    </style> 

    <style name="AppTheme.ActionBar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">\ 
     <item name="titleTextColor">@color/actionbar_text_color</item> 
     <item name="subtitleTextColor">@color/actionbar_text_color</item> 

     <item name="android:background">@color/actionbar_background</item> 

     <!-- Support library compatibility --> 
     <item name="background">@color/actionbar_background</item> 
    </style> 

    <style name="AppTheme.DropDown" parent="@style/Widget.AppCompat.Light.ListView.DropDown"> 
     <item name="android:background">@color/background_color</item> 
     <!-- Support library compatibility --> 
     <item name="background">@color/background_color</item> 
    </style> 

    <style name="menuItemColor"> 
     <item name="android:textColor">@color/inactive_text_color</item> 
    </style> 

</resources> 

私はコード

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    app:theme="@style/AppTheme.ActionBar"/> 

で活動レイアウトに注意をアクションバーを追加しました。

+0

あなたのアクティビティのテーマは? – Sufian

+0

AndroidManifestアプリケーションタグ 'android:theme =" @ style/AppTheme.NoActionBar "'にテーマを設定しました。私も活動のテーマを設定する必要がありますか? – ziwert

+0

その行を 'android:theme =" @ style/Theme.AppCompat.Light.NoActionBar "'に変更するとどうなりますか?変更? – Sufian

答えて

0

これは、あなたがあまりにもオーバーフローメニューのスタイルを定義する必要が

<style name="AppTheme.NoActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
<item name="android:popupMenuStyle">@style/PopupMenu</item> <! added it here 
    <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item> 
    <item name="android:actionMenuTextColor">@color/actionbar_text_color</item> 
    <item name="android:textColor">@color/text_color</item> 

    <!-- Support library compatibility --> 
    <item name="actionBarStyle">@style/AppTheme.ActionBar</item> 
    <item name="actionMenuTextColor">@color/actionbar_text_color</item> 
</style> 

<style name="AppTheme.ActionBar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">\ 
    <item name="titleTextColor">@color/actionbar_text_color</item> 
    <item name="subtitleTextColor">@color/actionbar_text_color</item> 
<item name="android:popupMenuStyle">@style/PopupMenu</item> <! added it here 
    <item name="android:background">@color/actionbar_background</item> 

    <!-- Support library compatibility --> 
    <item name="background">@color/actionbar_background</item> 
</style> 
0

..あなたを助けるスタイルのように、

<style name="PopupMenu" parent="@android:style/Widget.PopupMenu"> 
<item name="android:popupBackground">@android:color/white</item> 

とあなたのメインテーマに追加を作成することができこのように:

<!-- OverFlow menu Styles --> 
<style name="PopupMenuListView" parent="@style/Widget.AppCompat.Light.ListView.DropDown"> 
    <item name="android:divider">@color/sp_red_500</item> 
    <item name="android:dividerHeight">1dp</item> 
    <item name="android:background">@color/white</item> 
</style> 

あなたの親テーマスタイル(ベースアプリケーションテーマ)では、次のようなドロップダウンメニュースタイルを定義しています:

<item name="dropDownListViewStyle">@style/PopupMenuListView</item> 
+0

私は興味深い結果を得ました。メニューの背景は白ですが、テキストは黒い帯のように見えます。 – ziwert

関連する問題