为listview的item设置不同的布局文件,步骤如下;
1、为不同的item写不同的布局文件,设置统一的bean类
2、继承BaseAdapter类,实现getItemViewType(int position)和getViewTypeCount() 方法,根据这两个方法,为item设置不同的标记,也就是不同的type
/**
* 根据数据源的position返回需要显示的的layout的type
*
* type的值必须从0开始
*/
@Override
public intgetItemViewType(intposition) {
returnposition ==0?0:1;
}
3、在getView方法中,利用getItemViewType(position)方法获取当前的type类型,然后根据不同的type类型,加载不同的item布局文件。
intviewType = getItemViewType(position);
ViewTagHolder mViewTagHolder =null;
if(convertView ==null) {
if(viewType ==0) {
convertView =mInflater.inflate(R.layout.layout_hot_search,parent, false);
}else{
convertView =mInflater.inflate(R.layout.adapter_tag_item,parent, false);
mViewTagHolder =newViewTagHolder(convertView);
convertView.setTag(R.string.app_name,mViewTagHolder);
}
}else{
mViewTagHolder = (ViewTagHolder) convertView.getTag(R.string.app_name);
}
4、其他的一些listview的优化同一般的listview没有很大区别。
网友评论