我的 ListView 有问题。当我选择它时,我想将所选项目的背景更改为我拥有的自定义可绘制对象,但它不起作用。
我想在选中项中实现图片中的效果
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@drawable/selected_item"/>
<item android:drawable="@android:color/transparent" />
</selector>
这是list_row的文本
<!-- this layout is used to view row of category list and resturant list -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/txt_category_row"
android:gravity="center"
android:layout_width="match_parent"
android:textColor="@color/BLACK"
android:layout_height="55dp"
android:padding="10dp"
android:text="@string/hello"
android:layout_marginTop="5dp"
android:textAppearance="?android:attr/textAppearanceLarge" />
这是 ListView code.xml
:
<ListView android:id="@+id/list_category"
android:layout_alignParentLeft="true"
android:layout_height="fill_parent"
android:layout_width="184dp"
android:dividerHeight="2px"
android:background="@android:color/transparent"
android:cacheColorHint="@android:color/transparent"
android:layout_marginTop="5dp"
android:listSelector="@drawable/list_selector"
android:divider="@color/Gray" >
最佳答案
在触摸模式下,没有选择或聚焦状态。
但是,您可以有一个选中状态(即使没有复选框)并使用它来在“选择”时更改属性。在您设置显示列表的 Java 代码中,在定义 ListView 后添加此行:
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
然后在您的状态列表 XML 中更改:
android:state_selected="true"
为此:
android:state_activated="true"
所以现在你应该有:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true"
android:drawable="@drawable/selected_item"/>
<item android:drawable="@android:color/transparent" />
</selector>
最后,将行 View 的背景设置为指向您的选择器文件:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/txt_category_row"
android:gravity="center"
android:layout_width="match_parent"
android:textColor="@color/BLACK"
android:layout_height="55dp"
android:padding="10dp"
android:text="@string/hello"
android:layout_marginTop="5dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:background="@drawable/item_selector" />
您没有为状态列表 XML 命名,所以我只使用了“item_selector”。您应该将其替换为该文件的实际名称。
关于android - ListView 选中的项目可绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10106413/