【问题标题】:How to set Listview alternate row color and selected item background color如何设置 Listview 交替行颜色和选定项背景颜色
【发布时间】:2013-11-06 02:47:18
【问题描述】:

我有一个列表视图。我在适配器的 getView() 方法中分配了如下所示的备用行颜色:

if(position % 2 ==1)
{
convertView.setBackgroundColor(Color.rgb(231, 249, 255));
}
else
{
convertView.setBackgroundColor(Color.rgb(195, 240, 255)); 
}

以上代码运行良好。现在我想更改所选列表项的颜色。为此,我遵循了以下程序:

我在 listSelector xml 上创建如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

  <!-- Selected --> 
  <item 
    android:state_focused="true" 
    android:state_selected="false" 
    android:drawable="@drawable/focused"/> 

  <!-- Pressed -->
  <item 
    android:state_selected="true" 
    android:state_focused="false"
    android:drawable="@drawable/selected" /> 

</selector>

并且我已将上述选择器分配给我的列表,如下所示:

myList.setSelector(R.drawable.list_selector);

但我没有得到选定的列表项颜色。

谁能告诉我如何将备用行颜色和选定列表项颜色设置为 android 列表。

【问题讨论】:

标签: android listview colors selector listitem


【解决方案1】:

这样试试

artists_list_backgroundcolor.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
 <item 
 android:state_selected="false"
    android:state_pressed="false" 
    android:drawable="@color/normal" />
<item android:state_pressed="true" 
    android:drawable="@color/itemselected" />
<item android:state_selected="true"
 android:state_pressed="false" 
    android:drawable="@color/itemselected" />
</selector> 

colors.xml

<resources>

    <color name="normal">#ffffff</color>
    <color name="itemselected">#EDEDED</color>

</resources>

并在getView()中使用

if (position % 2 == 0) {
        view.setBackgroundResource(R.drawable.artists_list_backgroundcolor);
    } else {
        view.setBackgroundResource(R.drawable.HERE_FOR_ALTERNATE);
    }

供参考Link

希望这会对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-13
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2014-03-21
    相关资源
    最近更新 更多