我有Listview。我希望我选择的文本的颜色在我选择后变为白色,并保持白色,但是当我在列表视图中选择另一个项目时,我希望先前选择的项目的颜色恢复为默认的黑色和新选择的项目将更改为白色。
我的color_selector.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>
如果我按下该项目,这只会将文本颜色变为白色。
答案 0 :(得分:1)
为此使用 state_activated ,您实际上只处理选择器中的新闻事件,这是一个瞬态条件,一旦用户移开他们的手指就会变为假。
您也可以选择 state_selected ,查看Explanation of state_activated, state_selected, state_pressed, state_focused for ListView以获取更多信息。
<?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>