尝试在 Android 中覆盖上下文菜单颜色,看看是否有帮助。它说您不能覆盖标准的上下文菜单选择器,但继续提供长按上下文的代码。
为了主题任何列表项,我在列表 xml 上分配了一个背景,例如 android:background="@layout/customshape,自定义形状类似于:
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="@color/white"
android:endColor="@color/light_grey_background"
android:angle="270"/>
<corners
android:bottomRightRadius="7dp"
android:bottomLeftRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp"/>
</shape>
我从列表项 .xml 中调用它,例如:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingTop="2dip"
android:paddingBottom="2dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@layout/customrecipeshape"
android:orientation="horizontal" >
<ImageView
android:id="@+id/listicon"
android:layout_width="34px"
android:layout_height="wrap_content"
android:src="@drawable/icon_red"
/>
<TextView android:id="@+id/thing1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textAppearance="?android:attr/textAppearanceSmall"/>
<TextView android:id="@+id/thing2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20px"
android:textColor="@color/grey21"
android:textAppearance="?android:attr/textAppearanceSmall"/>
<TextView
android:id="@+id/thing3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/grey21"
android:textAppearance="?android:attr/textAppearanceSmall"
/>
</LinearLayout>
如此处所述:https ://groups.google.com/forum/?fromgroups=#!topic/android-developers/GY9DFX2H-Bc
您不能覆盖自定义上下文菜单,但您可以使用列表视图和警报对话框创建自己的菜单。