我有一个列表视图,我想在其中以自定义方式突出显示所选项目。我正在设置适配器中的每个项目属性getView
方法,包括itemView.setSelected(true)
.
主布局通过以下方式定义列表视图:
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:choiceMode="multipleChoice"
android:listSelector="@drawable/list_selector" />
(使用选择模式也没有帮助)。
The 列表选择器是一个几乎空的存根:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@android:color/transparent" />
</selector>
我不需要整个列表视图的特定样式,所以我会保留默认样式,但根据这个答案 https://stackoverflow.com/a/10501314/1102014,我们需要一个列表视图的选择器才能使项目选择器工作。无论如何,如果没有列表选择器问题仍然存在。
列表视图项目布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:background="@drawable/listitem_background"
android:orientation="vertical">
它引用了以下内容列表项_背景选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@android:color/white" />
<item android:drawable="@android:color/transparent" />
</selector>
问题是,所选项目没有白色背景。
如果我改变android:state_selected="true"
选择器中的列表项_背景例如,android:state_pressed="true"
,然后选择器开始工作,即如果触摸某个项目,则项目背景变为白色。
因此,我认为选择器或我选择项目的方式存在错误。
我可以通过从 Java 设置背景或利用可检查状态来编写解决方法,但我想了解并修复选择器的当前问题。提前致谢。