我有一个Activity,它应该显示一个大的ListView。现在我想设置单行的背景颜色。我尝试用getChildAt来做,但后来我只能标记那些可见的行。因此,当List大于屏幕时,它不再起作用。我无法找到一个可行的替代方案,所以如果你能给我一些建议,我会很高兴。
答案 0 :(得分:1)
这可以在ListView的适配器中实现。在getView(...)
方法中检查当前项是否与单行的条件匹配,如果是,则设置当前行的特定背景颜色,否则设置默认颜色。
这样的事情:
public class MyCustomAdapter extends BaseAdapter{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// ....
convertView = inflater.inflate(R.layout.item_layout, null);
// ...
Item item = items.get(position);
if(item.isSingleLine()){
convertView.setBackgroundColor(SINGLE_LINE_BG_COLOR);
}else{
convertView.setBackgroundColor(DEFAULT_BG_COLOR);
}
}
}