我正在尝试创建一个用于加载带有特定标记的Instagram图像的图库。 它的工作非常好,除了图像是重复的。
我的自定义适配器如下所示:
private class ImageAdapter extends BaseAdapter {
private Context mContext;
private ArrayList<SquareImageButton> imageButtons;
public ImageAdapter(Context c, ArrayList<SquareImageButton> imageButtons) {
mContext = c;
this.imageButtons = imageButtons;
}
@Override
public int getCount() {
return imageButtons.size();
}
@Override
public Object getItem(int position) {
return imageButtons.get(position);
}
@Override
public long getItemId(int position) {
return imageButtons.get(position).getId();
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
return imageButtons.get(position);
}
public void addData(ArrayList<SquareImageButton> newButtons){
imageButtons.addAll(newButtons);
notifyDataSetChanged();
}
}
我试图重做getView方法,因为这是每个人在其他人的问题中建议的。但我似乎无法弄明白。
我试过这样做:
@Override
public View getView(int position, View convertView, ViewGroup parent){
SquareImageButton sib;
if(convertView == null){
sib = imageButtons.get(position);
}else{
sib = (SquareImageButton)convertView;
}
return sib;
}
但这只会让整个gridview变得怪异,浮动的图像会在我滚动的时候全部移动。
任何建议都将不胜感激。