Android ListView自定义选择器不工作

Android ListView自定义选择器不工作,android,listview,selector,drawable,Android,Listview,Selector,Drawable,我目前正在尝试在listview悬停时应用选择器。当它悬停、聚焦或按下时,它需要变成灰色。所以我一直在stack上搜索一些帖子,但它们似乎都不起作用 我的选择器: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_enabled="true"

我目前正在尝试在listview悬停时应用选择器。当它悬停、聚焦或按下时,它需要变成灰色。所以我一直在stack上搜索一些帖子,但它们似乎都不起作用

我的选择器:

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

我的列表视图:

<ListView
    android:id="@+id/supplier_scan_list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:divider="#eaeaea"
    android:dividerHeight="0.5dp"
    android:drawSelectorOnTop="true"
    android:fastScrollEnabled="false"
    android:footerDividersEnabled="false"
    android:listSelector="@drawable/listselector"
    android:overScrollFooter="@android:color/transparent">
android:focusable="true"
android:focusableInTouchMode="true"
android:descendantFocusability="blocksDescendants" 

我的自定义列表项视图:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent">

<RelativeLayout
    android:id="@+id/item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:background="@android:color/transparent"
    android:padding="10dp">

    <TextView
        android:id="@+id/scan_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_toLeftOf="@+id/order_count"
        android:background="@android:color/transparent"
        android:text="$Artikelnaam"
        android:textColor="#000"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/scan_detail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/scan_title"
        android:layout_centerVertical="true"
        android:layout_marginLeft="15dp"
        android:background="@android:color/transparent"
        android:text="$ArtikelDetail"
        android:textColor="@android:color/secondary_text_light_nodisable"
        android:textSize="12sp" />

    <Button
        android:id="@+id/order_count"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="40dp"
        android:layout_marginRight="40dp"
        android:background="@drawable/rounded_square_recent"
        android:clickable="false"
        android:text="1"
        android:textColor="#FFF"
        android:textSize="18sp" />

</RelativeLayout>


有人知道我做错了什么吗?

将这些行添加到您的listview中:

<ListView
    android:id="@+id/supplier_scan_list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:divider="#eaeaea"
    android:dividerHeight="0.5dp"
    android:drawSelectorOnTop="true"
    android:fastScrollEnabled="false"
    android:footerDividersEnabled="false"
    android:listSelector="@drawable/listselector"
    android:overScrollFooter="@android:color/transparent">
android:focusable="true"
android:focusableInTouchMode="true"
android:descendantFocusability="blocksDescendants" 
selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/normal" android:state_activated="false"/>
<item android:drawable="@drawable/hover" android:state_pressed="true"/>
<item android:drawable="@drawable/hover" android:state_activated="true"/>
</selector>

解决方案:


此listview使用了自定义适配器(BaseAdapter)。在这个适配器中,我使rootview成为onClick,但是这取消了我的列表选择器。因此,我在ListView上将其更改为onItemClick,并使用额外的方法从适配器返回所需的信息。执行此操作后,列表选择器再次工作。

两者都不工作。这就是问题所在,所有可能的方法都不起作用。您是否尝试过将列表项的背景设置为选择器?是的,通过xml和编程方式。可绘制/悬停中有什么?在选择器中传递灰色不是更容易吗?开始工作了,看看我的解决方案