Android listview中,不同的Item显示不同的layout ---- BaseAdapter
工作中有时会有这样的需求,listview的Item显示中,奇数行显示一种效果,偶数行显示另外一种效果。或者第一行显示的内容或效果与其他行不同。
解决方法是复写BaseAdapter中的 getItemViewType和getViewTypeCount这两个方法:
参考代码如下:
@Override
public int getItemViewType(int position) {
if (position == 0)
return 0;
else
return 1;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
if (getItemViewType(position) == 0) {
convertView = LayoutInflater.from(mActivity)
.inflate(R.layout.physique_result_item_positon0, null);
} else {
convertView = LayoutInflater.from(mActivity)
.inflate(R.layout.physique_result_item, null);
}
holder = new ViewHolder();
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.content = (TextView) convertView.findViewById(R.id.content);
if (getItemViewType(position) == 0) {
holder.imageView = (ImageView) convertView.findViewById(R.id.about_physique_info);
holder.imageView.setOnClickListener(onClickListener);
}
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}