Android:如何使ListView的背景颜色显示在选择后面?

时间:2009-12-03 09:42:48

标签: android listview

我有一个由自定义适配器驱动的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突出显示仅显示在行后面,只有在每一行的几个像素可见时,所有这些都有效。有没有办法让选择显示在背景之上?

2 个答案:

答案 0 :(得分:3)

在布局的android:drawSelectorOnTop="true"元素中尝试<ListView>

答案 1 :(得分:2)

我认为问题在于你正在使用simple_list_item_2,它内置了一些填充/边距。我建议您制作自己的simple_list_item_2版本,其中高度和宽度都设置为fill_parent。您可以看到最新的simple_list_item_2 here