Anular los colores del menú contextual en Android

Veamos,

Sé cómo cambiar el estilo de un ListView (el color naranja cuando se selecciona un elemento):

Android: listSelector = "@ drawable / xxx" y un drawable con un mapa de bits o un @color

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@drawable/image" /> <item android:drawable="@android:color/transparent" /> </selector> 

La cosa es, para tener un diseño coherente, tengo que hacer lo mismo para un menú contextual, pero no puedo ver dónde cambiarlo. No hay listSelector, nada que cambiar.

Si por el menú del contexto usted significa el menú de la prensa larga, entonces he hecho esto con el código siguiente. Mi menú tiene el fondo de mi tema, y ​​un punto culminante verde.

Disposición del menú contextual:

 <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/resetConfirm" android:title="@string/actual_reset"></item> </menu> 

Styles.xml, donde estoy usando un tema personalizado (que creo que es la clave)

  <style name="GradientLight" parent="@android:style/Theme.Light"> <item name="android:windowBackground">@drawable/background</item> <item name="android:progressBarStyle">@style/progressBar</item> <item name="android:buttonStyle">@style/greenButton</item> <item name="android:buttonStyleSmall">@style/greenButton</item> <item name="android:listViewStyle">@style/listView</item> <item name="android:itemBackground">@drawable/menu_selector</item> <item name="android:spinnerStyle">@style/spinner</item> </style> <style name="listView" parent="@android:style/Widget.ListView.White"> <item name="android:background">@drawable/background</item> <item name="android:listSelector">@drawable/list_selector_background_green</item> </style> 

Este es el único enfoque que funcionó para mí:

Puedes anular el atributo android actionModeBackground (que encontré en Android / Sdk / plataformas / android-22 / data / res / values ​​/ themes_holo.xml y R.attr ) en el tema de tu aplicación:

 <style name="AppTheme" parent="android:Theme.Holo"> <item name="android:windowBackground">@color/background</item> <item name="android:actionBarStyle">@style/MyActionBar</item> <item name="android:actionModeBackground">@drawable/context_menu</item> ... </style> 

Y reemplazarlo con su propio dibujable y colores, en este caso,

Context_menu.xml:

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/context_menu_bottom" /> <item android:drawable="@drawable/context_menu_top"/> </layer-list> 

Que se compone de

Context_menu_bottom.xml:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/accent"/> <padding android:bottom="4dp"/> </shape> 

y

Context_menu_top.xml:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/primary"/> </shape> 

¡Espero eso ayude!

Aquí es cómo lo haces. Vaya a recursos> styles.xml y anule el valor del atributo itemBackgroud del tema de la siguiente manera:

 <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="android:itemBackground">"YOUR_COLOUR_HERE"</item> </style> 

Si esto no funciona, compruebe en AndroidManifet.xml que está utilizando realmente el mismo tema en el nivel de la aplicación:

 <application ... android:theme="@style/AppTheme"> ... </application> 
  • ¿Cómo puedo hacer que mis filas listview tengan diferentes alturas
  • ¿Cómo se simula la memoria baja en el emulador de Android?
  • Gson deserializa json con diferentes tipos de valor
  • ¿Por qué libgdx SpriteBatch / BitmapFont rompe Texture.bind?
  • ¿hay un acceso directo en eclipse para generar recursos (constructores, get / set ...)
  • Cómo configurar Appium en Mac OS para ejecutar pruebas automatizadas de clases JAVA en dispositivos Android e iOS
  • ¿Cómo habilitar la inspección después de haber sido inhabilitado en Android Studio?
  • Android: ¿Hay una ventaja al establecer compileSdkVersion en una versión inferior a la última API?
  • ¿Cuándo usar un Servicio o AsyncTask o Handler?
  • Java.lang.NullPointerException: Intenta invocar el método virtual en una referencia de objeto nulo
  • ¿Cómo desactivo mi diálogo de progreso después de cargar la vista web?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.