Фон Android меню черный с Theme.AppCompat?

По какой-то причине в моем приложении, когда я использую «Theme.AppCompat» в качестве своего стиля, он делает черный текст моего меню (который я установил с тех пор, как хочу черный текст) на темно-сером фоне, как показано здесь:

Скриншот

Я попытался вручную настроить цвет фона меню с помощью нескольких онлайн-ресурсов, но ни один из них не работает. Кто-нибудь знает, что может вызвать проблему? Ниже мой стиль.xml, и, как вы можете видеть, два нижних элемента в основной теме темы приложения – это попытка изменить цвет фона с помощью вещей, которые я нашел в Интернете.

<!-- 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> 

Вы можете изменить цвет фона всплывающего меню, как показано ниже.

  1. Создайте стиль в styles.xml

     <style name="PopupMenuStyle" parent="Theme.AppCompat.Light"> <item name="android:background">@android:color/white</item> </style> 
  2. Задайте эту тему в качестве всплывающей темы 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" /> 

Надеюсь это поможет.

Вы можете просто использовать appNS для определения popupTheme, как показано ниже.

 app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 

Ссылка на эту ссылку

Принятый ответ здесь сработал для меня. Я просто повторяю тот же ответ здесь снова. Добавьте следующее на свою панель инструментов 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> 

Вышеупомянутый стиль дает белый шрифт на черном фоне.

Кредит на #Eugen Pechanec

Не уверен, что это поможет. Это может быть более простое решение. Внутри 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> 

Чтобы изменить цвет меню параметров панели инструментов, добавьте это в свой элемент панели инструментов

 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, а не фон. Последний будет применен ко всему (самому меню и каждому пункту меню), первое относится только к всплывающему меню.

Intereting Posts
Уведомление в ожиданииIntent contentIntent завершается сбой при завершении вызова активности () Android WebView – классы доступа из одного iframe внутри другого iframe Установите режим наложения Actionbar во время выполнения на Android SQLiteDatabase 'не реализует интерфейс' Должен ли я проверить, если ProgressBar isShowing, прежде чем отклонить его? Android Studio 2.0 (Preview 3b) макет xml не обновляется в apk? Почему у LinearLayout instance.getLayoutParams есть неправильный класс? Добавление прослушивателей событий касания к MapView Имеет ли слишком много Деяний влияет на мою работу? Как сделать прозрачный градиент? Как удалить строку заголовка в Android? Приложение принудительной остановки – также отменяет любые тревоги, которые он установил? Это ошибка MapView? Есть ли служба тестирования Android, которую я могу использовать, чтобы дать мне реальную отладочную информацию с устройства? Мобильные устройства, совместимые с профайлером Nvidia Tegra 2.0