我试图在expandablelistview中为组设置动态背景。所以在我的listviewAdapter中,我有以下代码:
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.elv_group, parent, false);
}
((LinearLayout) convertView.findViewById(R.id.elv_group_root_layout))
.setBackgroundColor(getBackgroundColor(groupPosition));
return convertView;
}
public int getBackgroundColor(int groupPosition) {
if (getGroup(groupPosition).getInput().size() != getGroup(groupPosition).getOutput().size()) {
return R.color.attention_row;
} else {
return R.color.normal_row;
}
}
如您所见,我尝试根据方法getBackgroundColor中的给定语句设置根布局背景颜色。
但我得到的是一个总是灰色背景的群组列表!谁能告诉我在这里做错了什么?似乎与android列表生命周期或缓存机制有某种问题。 在expandablelistview中是否存在更改组的linearLayout颜色的问题?是否可以突出显示特定群体?
答案 0 :(得分:1)
convertView.setBackgroundResource(getBackgroundColor(groupPosition));
而不是
((LinearLayout) convertView.findViewById(R.id.elv_group_root_layout)).setBackgroundColor(getBackgroundColor(groupPosition));
救了我的命;) 感谢this post