在listview中嵌套不同的item,就要使用不同的ItmeHolder,根据要显示的不同来保存不同的itemholder (setTag)。
Listview中有3种Item布局,即使convertView缓存了一些布局,但是在重构时,根本不知道怎么样去让convertView返回你所需要的布局,这时你需要让adapter知道我当前有哪些布局,我重构Item时的布局选取规则,好让convertView能返回你需要的布局需要重写一下两个函数
@Override
public int getItemViewType(int position) {}
根据position来返回不同的int数据,从而加载不同的缓存布局
@Override
public int getViewTypeCount() {}
返回一共有多少种缓存布局的数量。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//三种itemHolder
viewHolder1 holder1 = null;
viewHolder2 holder2 = null;
viewHolder3 holder3 = null;
//根据位置,判断是那种itemholder
**int type = getItemViewType(position);**
//无convertView,需要new出各个控件
if(convertView == null)
{
//按当前所需的样式,确定new的布局
switch(type)
{
case TYPE_1:
convertView = inflater.inflate(R.layout.listitem1, pare