在Android中覆盖上下文菜单的颜色

让我们来看看,

我知道如何改变一个ListView的风格(select一个项目时的橙色):

android:listSelector =“@ drawable / xxx”和一个带位图或@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> 

事情是,为了有一个连贯的devise,我不得不做同样的事情上下文菜单,但我不知道在哪里改变它。 没有listSelector,没有什么改变。

Solutions Collecting From Web of "在Android中覆盖上下文菜单的颜色"

如果通过上下文菜单,你的意思是从长按菜单,然后我用下面的代码做了这个。 我的菜单有我的主题背景和绿色的亮点。

上下文菜单布局:

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

styles.xml,我正在使用一个自定义的主题(我认为是关键)

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

这是为我工作的唯一方法:

你可以在应用程序主题中覆盖android属性actionModeBackground(我在Android / Sdk / platforms / android-22 / data / res / values / themes_holo.xml和R.attr中find ):

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

并用自己的drawable和colorsreplace它,在这种情况下,

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> 

由…组成

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> 

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> 

希望能帮助到你!

这是你如何做到的。 转到资源> styles.xml并覆盖主题的itemBackgroud属性值,如下所示:

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

如果这不起作用,请检查AndroidManifet.xml,确实在应用程序级别使用相同的主题:

 <application ... android:theme="@style/AppTheme"> ... </application>