Android可扩展列表:具有不同布局的组
我想为每个组显示不同的子布局,如:Android可扩展列表:具有不同布局的组,android,expandablelistview,Android,Expandablelistview,我想为每个组显示不同的子布局,如: @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (convertView == null) { switch (groupPositi
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
if (convertView == null) {
switch (groupPosition){
case 0:
LayoutInflater inflater = (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.child_row, null);
TextView tvPlayerName = (TextView) convertView.findViewById(R.id.tvPlayerName);
tvPlayerName.setText(arrChildelements[groupPosition][childPosition]);
break;
case 1:
LayoutInflater inflater1 = (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater1.inflate(R.layout.child_row1, null);
TextView tvPlayerName1 = (TextView) convertView.findViewById(R.id.tvPlayerName);
tvPlayerName1.setText(arrChildelements[groupPosition][childPosition]);
break;
case 2:
LayoutInflater inflater2 = (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater2.inflate(R.layout.child_row2, null);
TextView tvPlayerName2 = (TextView) convertView.findViewById(R.id.tvPlayerName);
tvPlayerName2.setText(arrChildelements[groupPosition][childPosition]);
break;
case 3:
LayoutInflater inflater3 = (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater3.inflate(R.layout.child_row3, null);
TextView tvPlayerName3 = (TextView) convertView.findViewById(R.id.tvPlayerName);
tvPlayerName3.setText(arrChildelements[groupPosition][childPosition]);
break;
}
} return convertView;
}
我的问题是,当单击组时,子列表在组之间进行交互更改
有人能告诉我我做错了什么吗?那是因为
if (convertView == null)
删除它,它应该可以正常工作,如果它在删除这个if语句后工作正常,则返回它,并在if(convertView==null)中添加if语句,使其显示为您想要的样子,因为删除if(convertView==null)将使滚动速度大大减慢,并使用更多的ram
例如,您可以将所有视图放在一个xml文件或一个视图中,然后在switch方法中使用setVisibility显示适合当前列表项的布局部分 if(convertView==null)
将其从子视图的自定义适配器中删除
它可以正常工作在删除if(convertView==null)后,它可以正常工作。我不明白,我应该在if(convertView==null)中添加什么,以减少ram的使用。我必须显示7种不同的布局,很难将所有视图放在一个xml中。