android - 在 Android 上更改 ListView 项目的背景颜色

标签 android listview colors

如何根据每个项目更改 ListView 项目的背景颜色。当我在 ListView 项目布局中使用 android:backgroundColor 时,我可以实现这一点,但是列表选择器不再可见。我可以通过将 drawSelectorOnTop 设置为 true 来使选择器再次可见,但随后选择器会覆盖整个项目。

任何想法如何更改这些背景颜色并保留选择器?

PS 我宁愿不改变选择器本身。

编辑:GMail 应用程序的作者已经成功实现了这一点,所以这绝对是可能的。

最佳答案

您必须为要使用的每种颜色创建不同的可绘制状态。

例如:list_selector_read.xmllist_selector_unread.xml

除了 android:state_window_focused="false" 项之外,您只需将所有内容设置为透明即可。

然后,当您绘制列表时,您为每一行调用 setBackgroundResource(R.drawable.list_selector_unread/read)

您根本没有在 ListView 上设置 listSelector。这将为您的特定 Android 风格保留默认选择器。

关于android - 在 Android 上更改 ListView 项目的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2217753/

相关文章:

android - 防止 RecyclerView 中的直接邻居被分离和回收

Android Tab教程问题

Android - CursorAdapter 中更改光标如何影响 UI?

javascript - 使用 d3 库生成单色调色板

android - 使用 Android 支持库有什么缺点吗?

android - 如何从Android上的原始文件夹视频中获取视频缩略图

android - 为 fragment 制作自定义 ListView ?

安卓。在 fragment : NullPointerException 中使用 SimpleCursorAdapter、SQLite 和 ListView

css - 相同的颜色代码,在不同的显示器上有不同的效果

c++ - 用于选择颜色的轨迹栏。使用C++、opencv