我有一个ExpandableListView,我希望每个孩子显示不同的背景,具体取决于组和子位置。到目前为止,我是通过适配器活动在@Override getChildView
中完成的以下是我的代码示例
@Override
public View getChildView(int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
final String childText = (String) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_item, null);
}
switch (groupPosition) {
case 0:
switch(childPosition){ //
case 0:
convertView.setBackgroundResource(R.color.a1);
break;
case 1:
convertView.setBackgroundResource(R.color.a2);
break;
case 3:
convertView.setBackgroundResource(R.color.a3);
break;
case 4:
convertView.setBackgroundResource(R.color.a4);
break;
}
break;
case 1:
switch(childPosition){
case 0:
convertView.setBackgroundResource(R.color.b1);
break;
case 1:
convertView.setBackgroundResource(R.color.b2);
break;
case 3:
convertView.setBackgroundResource(R.color.b3);
break;
case 4:
convertView.setBackgroundResource(R.color.b4);
break;
}
break;
case 2:
switch(childPosition)
case 0:
convertView.setBackgroundResource(R.color.c1);
break;
case 1:
convertView.setBackgroundResource(R.color.c2);
break;
case 3:
convertView.setBackgroundResource(R.color.c3);
break;
case 4:
convertView.setBackgroundResource(R.color.c4);
break;
}
break;
}
现在,问题在于,当我打开第二个(#1),第三个(#2)组父级时,子项的颜色与第一个(#0)组相似。
这个开关框架工作得很好,当然,“@ color”中的所有颜色都彼此不同。 任何提示?
答案 0 :(得分:1)
创建视图时设置背景颜色。由于listviews循环视图,因此重新使用视图时颜色不会改变。