【发布时间】:2013-01-04 12:53:07
【问题描述】:
我有一个包含 3 个项目的 ExpandableList,每个项目都有不同的项目,具有不同的属性,例如背景颜色、图像、...
我想在单击时更改子项的颜色。我可以在不滚动时更改颜色,因为我在视图中保存了一个标签。但是当我滚动并单击其他孩子时出现问题。最后选择的孩子不会改变背景颜色。
expandableList.setOnClickListener(new OnChildClickListener(){
...
View view =(View)parent.getTag();
//Change last view colour
view.setBackgroundResourece(R.drawable.background_noselect);
...
parent.setTag(v);
}
在适配器中:
getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent){
...
if(isSelect()){
convertView.setBackgroundResource(R.drawable.background_select);
}
}
【问题讨论】:
-
“我可以在不滚动时更改颜色,因为我在视图中保存了一个标签。但是当我滚动并单击其他子项时出现问题。” - 这是什么意思?请你解释一下
-
目标是我有一个可扩展列表,当我单击一个元素时,我会更改背景颜色(例如红色),然后单击另一个元素并更改背景颜色(例如例如红色),然后我更改了单击的第一个元素的颜色(例如蓝色)。我可以在不滚动列表的情况下执行这些操作,但是当我滚动列表时,我可以更改单击的第一个元素的颜色。
-
你的意思是什么:“我可以在不滚动列表的情况下做这些事情”你的意思是你可以在不将 XML 封装在 ScrollView 中的情况下做到这一点?或者你可以做到,但是当它在滚动的过程中它不起作用?还是你的意思是别的?
标签: android scroll expandablelistview