我花了很多时间试图解决这个问题,但没有成功。
我基本上是在尝试在单击列表项时更改它们的颜色。
我制作了一个选择器xml文件并将其存储在res/color/red_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000">
</item> <!-- default -->
</selector>
然后我尝试在 list.xml 中将 ListView 颜色更改为透明,在 main.xml 中我在我的 ListView 中使用了 android:listselector 属性并将 red_background 传递给它。
<ListView
android:id="@+id/main_list"
android:listSelector="@color/red_background"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
></ListView>
每次我运行该程序时,如果我删除“android:listSelector="@color/red_background",它会强制关闭该程序运行正常。
我做错了什么?
谢谢!
最佳答案
您可以通过以下 2 个步骤实现:
第一步:将颜色移动到color.xml资源文件:
<color name="color_list_press">#ffff0000</color>
<color name="color_list_focused">#ff0000ff</color>
<color name="color_list_default">#ff000000</color>
第 2 步: 从 android:color 更改为 android:drawable
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed -->
<item android:state_pressed="true"
android:drawable="@color/color_list_press"/>
<!-- focused -->
<item android:state_focused="true"
android:drawable="@color/color_list_focused"/>
<!-- default -->
<item android:drawable="@color/color_list_default"/>
</selector>
问候,
关于android - 如何更改 ListView state_focused 和 state_pressed 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6660271/