Android 防止在列表视图中突出显示

Android 防止在列表视图中突出显示,android,listview,highlight,Android,Listview,Highlight,我有一个列表视图,我想在其中阻止在选择上突出显示。在列表视图行布局上,背景色设置为sem透明。我做的越透明,Android默认的橙色越突出显示 布局如下: <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" style="@style/CodeFont" android:id="@+id/text1"

我有一个列表视图,我想在其中阻止在选择上突出显示。在列表视图行布局上,背景色设置为sem透明。我做的越透明,Android默认的橙色越突出显示

布局如下:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/CodeFont"
    android:id="@+id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="35sp" 
    android:gravity="center_vertical"
    android:checkMark="?android:attr/listChoiceIndicatorSingle"
    android:paddingLeft="20dip" 
    android:paddingTop="10dip" 
    android:paddingBottom="10dip"
    android:cacheColorHint="#00000000" 
    android:background="#AAEBD5A8"

/>

如果我去掉背景,像这样设置颜色

private void makeListDefault(ListView listView) {
    int childCount = listView.getChildCount();
    int i = 0;
    for (i = 0; i < childCount; i++) {
        View view = listView.getChildAt(i);
        view.setBackgroundResource(R.drawable.hilight_no_gradient_correct_drawable);
    }
}
private void makeListDefault(ListView ListView){
int childCount=listView.getChildCount();
int i=0;
对于(i=0;i
它不会以任何方式影响颜色。hilight\u no\u gradient\u correct\u可绘制

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient android:startColor="#FF98FB98" android:endColor="#FF98FB98"
        android:angle="90" />
        <!-- 98FB98 is a shade of green -->
</shape>


有什么想法吗?我也尝试过使用选择器,但似乎没有什么影响颜色

是否尝试为ListView的背景项使用自定义颜色

<ListView
    android:id="@+id/conversations"
    android:scrollbars="vertical"
    android:layout_width="fill_parent"
    android:cacheColorHint="#000000"
    android:visibility="visible"
    android:listSelector="@color/backgroundlistcell"
    android:dividerHeight="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="1">
</ListView>

注意listSelector=“…”

backgroundlistcell.xml

<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:state_focused="false"
    android:state_pressed="false"
    android:state_selected="false"
    android:state_enabled="true"
    android:drawable="@drawable/listcell_enabled" />
<item
    android:state_focused="true"
    android:drawable="@null" />
<item
    android:state_selected="true"
    android:drawable="@null" />
<item
    android:state_pressed="true"
    android:drawable="@drawable/listcell_pressed" />
</selector>


也许您需要更改可绘制属性值,但这应该有效。

您可以将listSelector定义为透明,如下所示:

android:listSelector="@android:color/transparent"

它将阻止突出显示/选定状态的默认颜色。

谢谢,我尝试了它,包括在ListActivity布局和列表项布局中使用android:listSelector=“@background/backgroundlistcell”选择器,但它似乎使项目完全透明,无论透明度和/或我使用的颜色。我的代码中可能有影响这一点的东西,因为我正在从那里做高亮显示等。但是,我无法让它工作。