Android listSelector应用于整个视图而不是项目

Android listSelector应用于整个视图而不是项目,android,listview,Android,Listview,我有一个列表视图的代码: <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/searchButton" android:divider="@co

我有一个
列表视图的代码

<ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/searchButton"
            android:divider="@color/DarkGoldenrod"
            android:dividerHeight="0.1dp"
            android:background="@drawable/list_selector"
            android:choiceMode="singleChoice" />
此选择器将应用于整个listview,如何将其应用于单个列表项


谢谢。

使用列表选择器而不是背景

 <ListView
  android:id="@android:id/list"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layout_below="@+id/searchButton"
  android:divider="@color/DarkGoldenrod"
  android:dividerHeight="0.1dp"
  android:listSelector="@drawable/list_selector"
  android:choiceMode="singleChoice" />


我认为您应该在单击元素时检查它的类型。并在适配器中更改此项的背景。

列表选择器将应用于整个
listview
为此,如果您正在为listview行膨胀视图,则将该样式应用于该总视图布局。否则,在onListitemClick方法中,它将为我们提供一个视图,通过
view.setBackgroundResource(resid)

一个listview选择器将应用于整个视图,因为它获得了焦点。。为了将其仅应用于视图的一部分,在这种情况下,在用于充气listview的布局内的视图上应用drawable

即: 假设您有一个相对布局,内部有一个textview,然后将drawable设置为textview,并为textview设置“setFocusable”true和setfocusableon touch true

试试这个

 <ListView
  android:id="@android:id/list"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layout_below="@+id/searchButton"
  android:divider="@color/DarkGoldenrod"
  android:dividerHeight="0.1dp"
  android:listSelector="@drawable/list_selector"
  android:choiceMode="singleChoice" />