多选ListView的选择器

时间:2014-09-26 05:55:48

标签: android xml listview layout selector

我无法在android中突出显示带有自定义适配器的多选列表视图。激活和按下状态工作得很好。我想要的是当用户点击一个项目时它应该突出显示。

我的 new_list_selector.xml

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

在上面的xml中,“激活”和“按下”的状态正在工作,但没有“选中”。

在我的 listview_item.xml 中,我将背景设置为选择器,如下所示

<?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="48dp"
    android:background="@drawable/new_list_selector">
<!--list items goes here-->
</RelativeLayout>

我像这样定义我的列表视图

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/masterContainer">
<ListView
        android:minWidth="25px"
        android:minHeight="25px"
        android:focusable="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/friendViewList" />
</RelativeLayout>

点击并按住列表项时,我获得了激活状态。点击列表项时,按下状态有效。我想在用户点击项目时突出显示它。有人可以帮我解决这个问题吗?感谢提前输入。

PS:我更喜欢xml解决方案而不是编码。我还尝试将state_focused设置为true而没有运气的选择器

1 个答案:

答案 0 :(得分:0)

执行以下操作:

<强> listview_item.xml

<?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="48dp">
<ImageView 
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:background="@drawable/new_list_selector"/>

</RelativeLayout>

这将在ImageView上设置选择器。您也可以使用两个TexTviews进行此操作。