[英]Android ListView row background color
我已经看过很多SO问题,无法解决。 我设法使用选择器更改了ListView的亮色-但是如何设置常规(非按下)背景色?
下面的XML无效,因为一旦按下该行,它只会将我的行项目背景更改为黑色。 我应该怎么做?
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
<item android:state_focused="true" android:drawable="@color/row_hilight"/>
<item android:state_pressed="true" android:drawable="@color/row_hilight"/>
<item android:state_pressed="false" android:drawable="@color/black"/>
</selector>
只需在末尾再添加一个项目:
<item android:drawable="@color/default_color"/>
从状态列表可绘制文档中:
在每次状态更改期间,都会从上到下遍历状态列表,并使用与当前状态匹配的第一项-选择不是基于“最佳匹配”,而是仅满足该状态的最低标准的第一项。
因此,如果没有其他特定条件的项目没有其他标准,则将匹配该项目。
您需要具有一个没有状态的默认状态。
另外,您还需要删除android:state_pressed="false"
,因为它具有与默认状态相同的功能。
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
<item android:state_focused="true" android:drawable="@color/row_hilight"/>
<item android:state_pressed="true" android:drawable="@color/row_hilight"/>
<item android:state_pressed="false" android:drawable="@color/black"/> //delete this
<item android:drawable="@color/black"/> //add this
</selector>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.