当我ListViewItem
被突出,我希望文本变成白色。我该如何定义呢?
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="@color/testcolor1"/>
<item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" />
<item android:state_enabled="false" android:color="@color/testcolor3" />
<item android:color="@color/testcolor5"/>
</selector>
创建文件RES /绘制/ text_color.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:color="#ffffff" />
<item android:state_focused="true" android:state_pressed="true" android:color="#ffffff" />
<item android:state_focused="false" android:state_pressed="true" android:color="#ffffff" />
<item android:color="#000000" />
</selector>
然后从XML(或代码@drawable/text_color
)的文本颜色为您的列表视图中的项目使用R.drawable.text_color
。
除了别人怎么如上所述,我想强调一点,从下面的网址服用。
https://developer.android.com/reference/android/content/res/ColorStateList.html
注:国家规范的名单将针对它们出现的XML文件中的顺序进行匹配。出于这个原因,更具体的项目应提前在文件中放置。没有国家规范的项目被认为是匹配任何状态集合,通常是有用的,作为最终项目被用作默认。
这一点很重要,你必须向在选择标签底部的更广泛的条件。希望这可以帮助!
尝试这个...
首先,创建放在text_color.xml
目录中的颜色状态列表res/color
。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingDefaultResource">
<item android:color="#000000" android:state_enabled="false"/>
<item android:color="#FFFFFF"/>
</selector>
二,使用
getColorStateList(@NonNull Context context,
@ColorRes int id)
方法得到的颜色状态列表。
textView.setTextColor(ContextCompat.getColorStateList(context, R.color.text_color))
第三,根据您的要求启用(true)还是禁用(假),
textView.isEnabled = true //when item is highlighted
快乐编码...