ListView TextColor 改变

ListView TextColor change

我有列表视图。我希望 selected 的文本颜色在 selected 后变为白色,并保持白色,但是当我 select 列表视图中的另一个项目时,我希望之前 selected 项目的颜色恢复为默认黑色,新 selected 项目更改为白色。

我的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>

如果我按住项目,这只会将文本颜色变为白色。

为此使用 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>