我正在开发一个 android 应用程序,我有很多项目要通过 ListView
显示:
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@android:id/list"
android:layout_gravity="right|center_vertical"
android:listSelector="@drawable/bg_selector"/>
bg_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="#8F136fb8"/>
</selector>
我希望每个项目都有不同的背景颜色,我在 adapter
的 getView
方法中设置它们:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
.....
Color color=generateColor();
viewHolder.textView.setBackgroundColor(color);
return convertView;
}
但是我发现,一旦我选择了一个项目,我将 selector
设置为 ListView
时,对用户事件没有响应。
最佳答案
问题:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="#8F136fb8"/>
</selector>
当项目未被点击时,你需要有一个默认颜色,否则它不会工作
示例:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="#8F136fb8"/>
<item android:state_pressed="false" android:drawable="@android:color/transparent"/>
<item android:drawable="@android:color/transparent"/>
</selector>
关于android - 查看背景颜色不能与选择器一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25226811/