TL:博士
- 对列表视图项使用选择器
- 您需要将整体列表视图背景设置为透明。
指示
首先,您需要将 ListView 设置为透明
在适配器的onCreate()
方法中,设置:
((ListView) findViewById(R.id.main_list)).setBackgroundColor(0);
Adapter
接下来,insidegetView()
包含以下代码
if (position%2 == 0) {
view.setBackgroundResource(R.drawable.selector);
} else {
view.setBackgroundResource(R.drawable.selector2);
}
selector.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>
和 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/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>
不要忘记包含一个colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="opaque_red">#f00</color>
<color name="translucent_red">#80ff0000</color>
<color name="blue">#00f</color>
<color name="green">#0f0</color>
</resources>
示例项目
这是我为您配置的示例项目的文件。您可能想先做一个项目 > 清洁。
在这个应用程序中可以忽略一些文件,因为我修改了一个现有的样本,它做了一些非常不同的事情。
截屏
这是我的示例应用程序的样子