我有一个ListView
适配器,它根据行项的类型设置了不同的布局。
如果我使用支架回收我的行,如下面的代码所示,我想我会得到一些错误,因为对于回收的行,我会得到最新的非回收行的布局,这可能不一样类型。
在这种情况下我应该避免回收行吗?我还有什么其他选择?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
MyHolder holder = null;
int type = getItemViewType(position);
if(row == null)
{
holder = new MyHolder();
LayoutInflater inflater = ((Activity)mContext).getLayoutInflater();
if(type == TYPE_1){
row = inflater.inflate(R.layout.layout_type_1, parent, false);
}
else if(type == TYPE_2){
row = inflater.inflate(R.layout.layout_type_2, parent, false);
}
else {
row = inflater.inflate(R.layout.layout_type_3, parent, false);
}
row.setTag(holder);
}
else
{
holder = (MyHolder)row.getTag();
}
/* ... */
}