3
我正在使用Gridview來顯示服務器的一些圖像行。對於異步圖像加載,我使用新的網絡庫Volley。 最初的圖像加載工作正常,但只要我上下滾動圖像隨機顯示在錯誤的網格單元格內。但TextView內容始終正確顯示。GridView滾動問題使用Android Volley網絡庫
我的適配器碼:
class BadgeGalleryAdapter extends BaseAdapter { private LayoutInflater mInflater; private ImageLoader mImageLoader; // Constructor public BadgeGalleryAdapter(Context c) { mInflater = (LayoutInflater) c .getSystemService(Context.LAYOUT_INFLATER_SERVICE); mImageLoader = ImageCacheManager.getInstance().getImageLoader(); } @Override public int getCount() { return mBadgeList.size(); } @Override public Object getItem(int position) { return mBadgeList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; // Use ViewHolder pattern to only inflate once if (convertView == null) { convertView = mInflater.inflate(R.layout.user_badge_grid_item, parent, false); viewHolder = new ViewHolder(); viewHolder.badgeImage = (ImageView) convertView .findViewById(R.id.grid_badge_image); viewHolder.badgeName = (TextView) convertView .findViewById(R.id.grid_badge_name); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } Badge badge = (Badge) getItem(position); if (badge != null) { //using Volley ImageLoader mImageLoader.get(badge.imageUrl, ImageLoader .getImageListener(viewHolder.badgeImage, 0, 0)); viewHolder.badgeName.setText(badge.name); } return convertView; } } static class ViewHolder { ImageView badgeImage; TextView badgeName; }