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):
- ¿Podemos usar Optionals en la programación de Android?
- Android: Socket - java.net.SocketException: sendto ha fallado: EPIPE (Broken pipe)
- ¿Existe alguna diferencia entre Java y Java de Oracle utilizados en Android?
- RelativeLayout no se puede convertir en android.support.v7.widget.Toolbar
- Rotar vídeo con mp4parser de acuerdo con la cámara utilizada
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.
- ¿Hashmap débil con referencias débiles a los valores?
- Cómo hacer una relación bidireccional uno-a-uno por GreenDAO?
- No se pueden usar las funciones lambda en Android con Java 1.8
- Android: Inicie una actividad inmediatamente y luego cargue el contenido
- Android: ¿Qué debo hacer en lugar de usar una función obsoleta (getwidth ())?
- Diálogo de alerta de Android y botón positivo
- Android JUnit: Cómo hacer que una excepción cause un caso de prueba para pasar (anotación @Test)
- ¿Cuál es la forma más eficiente en Android de llamar a las llamadas de la API Web HTTP que devuelven una respuesta JSON?
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>
- Reconocimiento Óptico de Caracteres Android con OpenCV
- Guardar el estado de un WebView y volver a cargar la posición