2017-03-10 17 views
3

だから私は私のメニューのポップアップの背景色を変更する方法を探しましたが、私は今、本当にアイデアをよ... はまず、これは私のツールバーです:Androidのメニュー項目の背景色

<android.support.v7.widget.Toolbar 
    android:id="@+id/main_actionbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:elevation="2dp" 
    app:elevation="2dp" 
    app:theme="@style/MainActionBar" 
    app:popupTheme="@style/MainActionBar.Popup"/> 

と私は、任意の背景を変更することなく適用される2つのテーマ:

<style name="MainActionBar" parent="Widget.AppCompat.Light.ActionBar"> 
    <item name="android:background">@color/primary</item> 
    <item name="android:textColor">@android:color/white</item> 
    <item name="android:textColorPrimary">@android:color/white</item> 
    <item name="android:textColorSecondary">@android:color/white</item> 
</style> 
<style name="MainActionBar.Popup" parent="Widget.AppCompat.PopupMenu"> 
    <item name="android:textColor">@color/primary_text</item> 
</style> 

これは私が青に私のアプリのプライマリとセカンダリの色を設定しているため、私の項目の背景色を青色に見えるのです。

一つの解決策は、私がアンドロイドを設定している白の項目メニューの色を変更することが分かっ:背景を次のようになり、私のMainActionBar.Popupの白い色に:

Widget.AppCompat.PopupMenu with android:background set to @android:color/white

が、これは背景を変更んがアニメーションを開始する前にポップアップの背後にあるボックスをレンダリングするため、アニメーションが失われます。

別のオプションは、アンドロイドを設定している。このように見える白い色にitemBackground:あなたはアニメーションは今も元気に見えますが、項目の背景が真っ白ではありません見ることができるように

Widget.AppCompat.PopupMenu with android:itemBackground set to @android:color/white

...

私はアンドロイドを試しました:ポップアップバックグラウンドも同様に効果がないようです。

私はこの質問には多くのことを尋ねたが、私はそれらの数十を読んで知っているので、私は多分それは私が明白な間違いを見ていないだけということだ...

+1

'android:background ="?attr/colorPrimaryDark "' – shadygoneinsane

答えて

2

変更この:

<style name="MainActionBar.Popup" parent="Widget.AppCompat.PopupMenu"> 
    <item name="android:textColor">@color/primary_text</item> 
</style> 

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

<style name="MainActionBar.Popup" parent="ThemeOverlay.AppCompat.Light"> 
    <item name="android:colorBackground">Your Background Color</item> 
    <item name="android:textColor">Your Text Color</item> 
</style> 

はMainActionBarテーマから以下を削除します

タグをツールバーに、この属性を追加します。

android:background="?attr/colorPrimary" 

・ホープ、このことができます。

+0

私はそれを試しました。デフォルトでは、私のメニューは青い背景と白いテキストを持っています。これは、テキストを黒に設定し、背景を白に設定して変更を適用するとどのように見えるかです:[画像](http://i.imgur.com/aoe0tiG.png)。あなたが見ることができるように、テキストの色を変更することはできますが、背景の色は変わりません:( – BoroChief

+0

あなたのツールバーの背景色の設定がカスタムポップアップのスタイルを上書きしています。それは働いています。私の編集された答えをチェックしてください;) – tahsinRupam

+0

うわー、あなたは正しいです。それは私がそれを望んでいた方法だけで動作します!そんなにありがとう、あなたはちょうど私の正気を救った! :D – BoroChief

関連する問題