アプリケーションで何らかの理由で「Theme.AppCompat」をスタイルとして使用すると、次に示すように、メニューが暗い灰色の背景に黒いテキスト(黒いテキストが必要なために設定)になります。
いくつかのオンラインリソースを使用してメニューの背景色を手動で設定しようとしましたが、どれも機能していないようです。何が問題を引き起こしているのか誰か知っていますか?以下は私のstyle.xmlです。ご覧のとおり、メインアプリのテーマエントリの下部にある2つの要素は、オンラインで見つけたものを使用して背景色を変更しようとしています。
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat">
<item name="windowActionBar">false</item>
<item name="Android:windowBackground">@color/white_primary</item>
<item name="Android:textColor">@color/text_primary</item>
<item name="Android:textSize">@dimen/text_size_medium</item>
<item name="colorAccent">@color/black_primary</item>
<item name="Android:popupMenuStyle">@style/PopupMenuStyle</item>
<item name="Android:panelFullBackground">@drawable/menu_full_bg</item>
</style>
<style name="PopupMenuStyle" parent="Theme.AppCompat.Light">
<item name="Android:popupBackground">@Android:color/white</item>
</style>
<drawable name="menu_full_bg">#FFFFFF</drawable>
ポップアップメニューの背景色は以下のように変更できます。
Styles.xmlでスタイルを作成します
<style name="PopupMenuStyle" parent="Theme.AppCompat.Light">
<item name="Android:background">@Android:color/white</item>
</style>
このテーマをtoolbar.xml
のtoolbar
ポップアップテーマとして設定します
<Android.support.v7.widget.Toolbar
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
// Your code here
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/PopupMenuStyle" />
お役に立てれば。
ツールバーオプションメニューの色を変更するには、これをツールバー要素に追加します
app:popupTheme="@style/MyDarkToolbarStyle"
次に、styles.xmlでポップアップメニュースタイルを定義します
<style name="MyDarkToolbarStyle" parent="ThemeOverlay.AppCompat.Light">
<item name="Android:colorBackground">@color/mtrl_white_100</item>
<item name="Android:textColor">@color/mtrl_light_blue_900</item>
</style>
背景ではなくcolorBackgroundを使用する必要があることに注意してください。後者はすべて(メニュー自体と各メニュー項目)に適用され、前者はポップアップメニューにのみ適用されます。
以下に示すように、appNSを使用してpopupThemeを定義できます。
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
これが役立つかどうかはわかりません。それはもっと簡単な解決策かもしれません。 AppCompat --themes_base.xml内に、以下のセクションがあります。
<!-- Panel attributes -->
<item name="panelMenuListWidth">@dimen/abc_panel_menu_list_width</item>
<item name="panelMenuListTheme">@style/Theme.AppCompat.CompactMenu</item>
<item name="panelBackground">@drawable/abc_menu_hardkey_panel_mtrl_mult</item>
<item name="Android:panelBackground">@Android:color/transparent</item>
<item name="listChoiceBackgroundIndicator">@drawable/abc_list_selector_holo_dark</item>
アプリ内でテーマを作成し、色を適用します。
<style name="Theme.Base" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="Android:panelBackground">@Android:color/black</item>
</style>
これを参照してください リンク
ここで受け入れられた答えは私のために働いた。ここでも同じ答えを繰り返しています。ツールバーxmlに以下を追加します
<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="@color/toolbarbackground"
Android:elevation="4dp"
app:popupTheme="@style/YOUR_THEME_HERE"
Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
>
Styles.xmlの場合:
<style name="YOUR_THEME_HERE" parent="ThemeOverlay.AppCompat.Light">
<item name="Android:colorBackground">#000000</item>
<item name="Android:textColor">#ffffff</item>
</style>
上記のスタイルは、黒い背景に白いフォントを与えます。
#EugenPechanecの功績
私はこの行をお勧めしません:
<item name="Android:background">@Android:color/white</item>
私のデバイスのように、メニューポップアップアニメーションはかなり醜い振る舞いをしました。代わりに、これを使用するだけで十分でした。
<style name="PopupMenuStyle" parent="Theme.AppCompat.Light">
</style>