How can I change background color of
ListView items on a per-item basis. When I use
android:backgroundColor in the
ListView item layout I can achieve this, however the list selector is no longer visible. I can make the selector visible again by setting
drawSelectorOnTop to true but then the selector overlays the whole item.
Any ideas how to change those background colors and keep the selector?
PS I would rather not change the selector itself.
EDIT: Authors of GMail application have managed to achieve exactly this so it's definitely possible.
You have to create a different state drawable for each color you want to use.
All you need to do is set everything to transparent except the
Then when you are drawing your list you call
setBackgroundResource(R.drawable.list_selector_unread/read) for each row.
You don't set a listSelector on the ListView at all. That will maintain the default selector for your particular flavor of Android.