6

Per qualche motivo nella mia richiesta, quando si utilizza "Theme.AppCompat", come il mio stile, rende il mio menu di testo nero (che ho impostato dal momento che voglio testo nero) su sfondo grigio scuro, come illustrato di seguito:Menu sfondo Android nero con Theme.AppCompat?

screenshot

Ho provato a impostare manualmente il colore di sfondo del menu utilizzando alcune risorse online ma nessuna sembra funzionare. Qualcuno sa che cosa potrebbe causare il problema? Di seguito è riportato il mio style.xml e, come puoi vedere, i due elementi in basso nella voce principale del tema dell'app mi consentono di modificare il colore di sfondo utilizzando le cose che ho trovato online.

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

risposta

18

È possibile modificare il colore del menu a comparsa, come di seguito sfondo.

  1. creare uno stile in styles.xml

    <style name="PopupMenuStyle" parent="Theme.AppCompat.Light"> 
        <item name="android:background">@android:color/white</item> 
    </style> 
    
  2. Impostare questo tema come tema toolbar popup nel toolbar.xml

    <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" /> 
    

Spero che questo aiuti.

+2

Sei il mio eroe. Sono così felice di poter piangere. Non posso credere di aver trovato una soluzione che funzioni effettivamente su 5.1.1. – Sam

+0

@Sam Grazie uomo :) – Pooja

+0

molto bello grazie mille – Uthaya

0

consultare questo link

La risposta accettata qui ha funzionato per me. Sto solo ripetendo la stessa risposta qui di nuovo. Aggiungere il seguente alla barra degli strumenti 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" 
    > 

Nel vostro styles.xml:

<style name="YOUR_THEME_HERE" parent="ThemeOverlay.AppCompat.Light"> 
     <item name="android:colorBackground">#000000</item> 
     <item name="android:textColor">#ffffff</item> 
    </style> 

Lo stile di cui sopra dà testo bianco su sfondo nero.

credito al #Eugen Pechanec

0

Non so se questo è di aiuto. Potrebbe essere una soluzione più semplice. All'interno di AppCompat - themes_base.xml troverai la sezione seguente.

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

Creare un tema all'interno della vostra applicazione e applicare il colore.

2

È possibile utilizzare appNS per definire il popup, come mostrato di seguito.

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

Per cambiare il colore menu delle opzioni della barra degli strumenti, aggiungere questo al vostro elemento barra degli strumenti

app:popupTheme="@style/MyDarkToolbarStyle" 

Poi, nel tuo stile.xml definisce lo stile del menu popup

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

Nota che è necessario utilizzare colorBackground non lo sfondo. Quest'ultimo sarebbe applicato a tutto (il menu stesso e ogni voce di menu), il primo si applica solo al menu popup.