首先,我是编程新手。是否可以在每个具有不同布局的子项中创建自定义可扩展列表?如果有,请帮助我!
有三个父母,每个父母都有一个文本视图和一个开关。
第一位家长的孩子有:
第二位家长的孩子有:
第三位家长的孩子有:
请检查这个photoshop样机,这是我想要暗示的:
答案 0 :(得分:0)
您可以在自定义适配器中,但必须创建相应的布局。在getView()方法中使用以下内容。
switch (groupPosition) {
case 0:
convertView = inflater.inflate(R.layout.group1, null);
break;
case 1:
convertView = inflater.inflate(R.layout.group2, null);
break;
}
答案 1 :(得分:0)
当您使用两种类型的儿童项目视图时。所以你必须覆盖以下两种方法
final int CHILDVIEW_ONE = 0;
final int CHILDVIEW_TWO = 1;
final int CHILDVIEW_TYPE_COUNT = CHILDVIEW_TWO + 1;
@Override
public int getChildTypeCount() {
return CHILDVIEW_TYPE_COUNT;
}
@Override
public int getChildType(int groupPosition, int childPosition)
{
if(childObject instanceOf item1)
return CHILDVIEW_ONE;
else if (childObject instance item2)
return CHILDVIEW_TWO;
return super.getChildType(int groupPosition, int childPosition);
}
然后在getChildView()
执行以下操作:
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
....
if(childObject instanceOf item1){
//handle the first child view
}else if (childObject instanceOf item2){
//handle the second child view
}
....
}
您必须覆盖getChildType和getChildTypeCount,才能使用优化Memory Peroformance绘制滚动视图的视图概念