Android ListView自定义选择器不工作
我目前正在尝试在listview悬停时应用选择器。当它悬停、聚焦或按下时,它需要变成灰色。所以我一直在stack上搜索一些帖子,但它们似乎都不起作用 我的选择器: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"
<?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和编程方式。可绘制/悬停中有什么?在选择器中传递灰色不是更容易吗?开始工作了,看看我的解决方案