我有同樣的問題,我根本沒有參考佈局attirbute中的「wrap_content」。雖然這是一個古老的線程,但我無法弄清楚如何解決這個問題。因此,我通過在適配器中添加一個包含已經繪製位置的List來緩解它,如下面的代碼所示。我認爲這不是馬上做到這一點,但它對我有用。
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private List<Integer> usedPositions = new ArrayList<Integer>();
public ImageAdapter(Context c, List<String> imageUrls) {
mContext = c;
...
}
...
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
if (!usedPositions.contains(position)) {
// Your code to fill the imageView object content
usedPositions.add(position); // holds the used position
}
return imageView;
}
}
「更新數據,並調用dataSetChanged您的適配器」 - 爲我的作品 – 2013-08-22 06:55:42