我希望位置0的项目布局不同,其他所有项目的布局。 但是当我滚动列表时,位置0的布局,即(R.layout.list_simple)设置在任何随机位置..
请帮帮我......
public View getView(final int position, View convertView, ViewGroup parent) {
View vi = convertView;
ViewHolder holder = null;
if (vi == null) {
if (position == 0) {
vi = inflater.inflate(R.layout.list_simple, null);
holder = new ViewHolder();
holder.text = (TextView) vi.findViewById(R.id.title);
holder.image = (ImageView) vi.findViewById(R.id.thumb);
vi.setTag(holder);
} else {
vi = inflater.inflate(R.layout.feed_list_item, null);
holder = new ViewHolder();
holder.text = (TextView) vi.findViewById(R.id.title);
holder.image = (ImageView) vi.findViewById(R.id.thumb);
vi.setTag(holder);
}
} else {
holder = (ViewHolder) vi.getTag();
}
// if (data.size() <= 0) {
// holder.text.setText("No Data");
// }
tempValues = (RssFeedStructure) data.get(position);
if (tempValues.getIconSrc() != null) {
img.DisplayImage(tempValues.getIconSrc(), holder.image);
}
holder.text.setText(tempValues.getHeadLine());
holder.image.setVisibility(View.VISIBLE);
// Log.e("TEmpImage",""+tempValues.getIconSrc());
img.DisplayImage(tempValues.getIconSrc(), holder.image);
return vi;
}
static class ViewHolder {
private TextView text;
private ImageView image;
}
答案 0 :(得分:5)
这是因为第一个视图被重用来创建另一个视图。使用getViewTypeCount()
告诉adapeter你可以使用的项目和getItemViewType(int position)
来告诉使用哪种布局。这样就不会重复使用to layout了。
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
return (position==0) ? 0: 1;
}