我有Listview。我希望我选择的文本的颜色在选择后变为白色,并保持白色,但当我在列表视图中选择另一个项目时,我希望以前选择的项目的颜色恢复为默认的黑色,新选择的项目变为白色。
我的颜色选择器.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false"
android:color="@color/black" />
<item android:state_focused="true" android:state_pressed="true"
android:color="@color/white" />
<item android:state_focused="false" android:state_pressed="true"
android:color="@color/white" />
<item android:color="@color/black" />
</selector>
这只会在我按下项目时将文本颜色变为白色。
使用state_activated,您实际上只是在选择器中处理按下事件,这是一种短暂的情况,一旦用户移开手指,就会变为false。
您也可以查找state_selected,查看ListView的state_activated、state_selected、state_pressed、state_focused的解释以了解更多信息。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
.
.
.
<item android:state_activated="true" android:color="@color/white" />
<item android:state_selected="true" android:color="@color/white" />
<item android:color="@color/black" />
</selector>