具有替代颜色和焦点颜色的Android ListView

时间:2010-06-17 11:39:31

标签: android listview colors alternate

我需要在列表视图行中设置备用颜色,但是当我这样做时,它会删除/禁用焦点默认的黄色背景

我尝试使用backgroundColor rowView.setBackgroundColor(SOME COLOR);

还有backgrounddrwable。

rowView.setBackgroundColor(R.drawable.view_odd_row_bg);
<?xml version="1.0" encoding="utf-8"?>
<selector
   xmlns:android="http://schemas.android.com/apk/res/android">
   <item
      android:state_window_focused="false"
      android:drawable="@color/odd" />

   <!--
      Even though these two point to the same resource, have two states
      so the drawable will invalidate itself when coming out of pressed
      state.
   -->
   <item
      android:state_focused="true"
      android:state_enabled="false"
      android:state_pressed="true"
      android:drawable="@color/highlight" />
   <item
      android:state_focused="true"
      android:state_enabled="false"
      android:drawable="@color/highlight" />

   <item
      android:state_focused="true"
      android:state_pressed="true"
      android:drawable="@color/highlight" />
   <item
      android:state_focused="false"
      android:state_pressed="true"
      android:drawable="@color/highlight" />

   <item
      android:state_focused="true"
      android:drawable="@color/highlight" />

</selector>

但它无法正常工作。

有什么方法可以同时设置背景颜色和焦点颜色。

2 个答案:

答案 0 :(得分:6)

我发现这个教程对我很有帮助。

http://ykyuen.wordpress.com/2010/03/15/android-%E2%80%93-applying-alternate-row-color-in-listview-with-simpleadapter/

我能够使ListView项目具有交替的颜色,加上焦点项目保持默认的突出显示颜色。

答案 1 :(得分:2)

在您的颜色中加入透明度,黄色突出显示仍然存在,它位于背景颜色的后面,透明度会让它显示出来。