尽管滚动,但在ListView中更改单个视图的Backgroundcolor

时间:2016-12-30 14:27:32

标签: java android listview

我有一个Activity,它应该显示一个大的ListView。现在我想设置单行的背景颜色。我尝试用getChildAt来做,但后来我只能标记那些可见的行。因此,当List大于屏幕时,它不再起作用。我无法找到一个可行的替代方案,所以如果你能给我一些建议,我会很高兴。

1 个答案:

答案 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);
      }
   }

}