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();
}
本文介绍如何在Android的ListView中根据不同位置显示不同布局的方法。通过重写BaseAdapter的getItemViewType和getViewTypeCount方法,实现首项和其他项的区别展示。
1万+

被折叠的 条评论
为什么被折叠?



