机器人:state_selected ="真"没有关于ListView项目的工作

时间:2014-12-10 05:18:48

标签: android listview android-listview

我有一个ListView,我希望它的项目背景在按下项目时变为绿色,当我松开手指时保持灰色。 我使用选择器( listview_item_indicator.xml )来实现此目的:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/grey" android:state_selected="true" ></item>
    <item android:drawable="@color/green" android:state_pressed="true"></item>
</selector>

然后我更新ListView项目的xml文件以应用此selecor,如下所示:

android:background="@drawable/listview_item_indicator"

结果是当我按下项目时它会变成绿色,但当我松开手指时它会变成灰色(它在我按下它之前转向它)。我认为这意味着{{1}工作,但<item android:drawable="@color/green" android:state_pressed="true"></item>没有用。为什么?

3 个答案:

答案 0 :(得分:1)

state_selected可通过轨迹球或d-pad

进行选择

我认为您指的是API 11 state_activated

请参阅:http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

编辑: 你还需要:

1)将列表视图设置为单选:

<ListView
        android:choiceMode="singleChoice" />

2)使用listView.setItemChecked(index, true);

突出显示项目

答案 1 :(得分:0)

您应该使用android:listSelector代替android:background

答案 2 :(得分:0)

定义默认状态。

试试这个选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/grey" android:state_selected="true" ></item>
    <item android:drawable="@color/green" android:state_pressed="true"></item>
    <item android:drawable="@color/white" ></item>
</selector>