我有一个由自定义适配器驱动的ListView,它根据内容动态更改每行的背景颜色。 getView看起来像这样:
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View row = convertView;
Power power = powers.get(position);
if(row == null)
{
row = getLayoutInflater().inflate(android.R.layout.simple_list_item_2, parent, false);
}
TextView text1 = (TextView)row.findViewById(android.R.id.text1);
TextView text2 = (TextView)row.findViewById(android.R.id.text2);
text1.setText(power.name);
text2.setText(power.getAttackLine());
row.setBackgroundColor(0xFF0000FF);
return row;
}
除了每当我从列表中选择一个项目时,标准red/orange
突出显示仅显示在行后面,只有在每一行的几个像素可见时,所有这些都有效。有没有办法让选择显示在背景之上?
答案 0 :(得分:3)
在布局的android:drawSelectorOnTop="true"
元素中尝试<ListView>
。
答案 1 :(得分:2)
我认为问题在于你正在使用simple_list_item_2
,它内置了一些填充/边距。我建议您制作自己的simple_list_item_2
版本,其中高度和宽度都设置为fill_parent
。您可以看到最新的simple_list_item_2
here。