在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,没有什么改变。

  • Android:我如何访问默认的文字颜色? (没有主题,只是标准的一个)
  • 如何检测布局resize?
  • 设置布局的Alpha /不透明度
  • 如何从衍生的后台服务访问原始活动的视图
  • Android的EditText与文字包装,但没有硬返回
  • 如何在按下状态时移动button文本
  • 滚动文本上方的button,固定在底部的button
  • 如何在编辑文本之间放置一个水平的因子线
  • 如果通过上下文菜单,你的意思是从长按菜单,然后我用下面的代码做了这个。 我的菜单有我的主题背景和绿色的亮点。

    上下文菜单布局:

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