ListView在设置背景后不显示onclick颜色

时间:2013-02-02 14:54:54

标签: android listview colors onclick

我有一个listview,它有一个适配器,工作正常,但后来我添加了一些代码,因为我希望行是不同的颜色,之后,onclick颜色不会显示。

以下是我添加的代码:

if (position % 2 == 0)
            vi.findViewById(R.id.parentL).setBackgroundColor(ctx.getResources().getColor(R.color.row1));
        else
            vi.findViewById(R.id.parentL).setBackgroundColor(ctx.getResources().getColor(R.color.row2));

1 个答案:

答案 0 :(得分:7)

TL:DR

  • 使用列表视图项目的选择器
  • 您需要将整体列表视图背景设置为透明。

说明

首先,您需要将ListView设置为透明

在适配器的onCreate()方法中,设置:

 ((ListView) findViewById(R.id.main_list)).setBackgroundColor(0);

接下来,在Adapter的{​​{1}}内包含以下代码

getView()

其中selector.xml是

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

和selector2.xml是

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="false" android:state_focused="false"
        android:drawable="@color/blue" />
    <item android:state_enabled="false" android:state_focused="true"
        android:drawable="@color/translucent_red" />
    <item android:state_enabled="true" 
     android:state_pressed="true" android:drawable="@color/translucent_red" />
    <item android:state_enabled="true"
     android:state_focused="true" android:drawable="@color/translucent_red" />
    <item
     android:drawable="@color/android:transparent" />
</selector>

不要忘记包含colors.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="false" android:state_focused="false"
        android:drawable="@color/green" />
    <item android:state_enabled="false" android:state_focused="true"
        android:drawable="@color/opaque_red" />
    <item android:state_enabled="true" 
     android:state_pressed="true" android:drawable="@color/opaque_red" />
    <item android:state_enabled="true"
     android:state_focused="true" android:drawable="@color/opaque_red" />
    <item
     android:drawable="@color/android:transparent" />
</selector>

示例项目

这是sample project I configured for you的文件。你可能想做一个项目&gt;先做清洁。

在这个应用程序中可以忽略一些文件,因为我修改了一个做了非常不同的现有样本。

截图

这是我的示例应用程序的样子

enter image description here enter image description here enter image description here