繁体   English   中英

Android ListView行背景色

[英]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>

使用自定义适配器创建自定义列表视图:

列表视图的自定义适配器

这是您可以在getView中使用所需背景的视图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM