@Override public Object instantiateItem(View collection, int position) { if (getCount() > 1 && position > getCount() - 6) { mAdapter.loadNextPage(); } Photo photo = (Photo) mAdapter.getItem(position); final View view = mInflator.inflate(R.layout.photo_details_item, ((ViewPager) collection), false); ImageView imageView = (ImageView) view.findViewById(R.id.image); ((TextView) view.findViewById(R.id.image_title)).setText(photo.getTitle()); ((TextView) view.findViewById(R.id.image_description)).setText(photo.getDescription()); OnImageDisplayedCallback callback = new OnImageDisplayedCallback() { @Override public void onImageDisplayed(ImageView imageView) { view.findViewById(R.id.loading).setVisibility(View.GONE); } }; if (photo.getUrl(PhotosEndlessAdapter.SIZE_BIG) != null) { mStorage.displayImageFor(imageView, photo.getUrl(PhotosEndlessAdapter.SIZE_BIG), callback); } else { new LoadImageTask(photo, imageView, callback).execute(); } ((ViewPager) collection).addView(view, 0); return view; }
public PhotoDetailPagerAdapter(PhotosAdapter adatper) { mAdapter = adatper; mAdapter.registerDataSetObserver(mObserver); mInflator = (LayoutInflater) PhotoDetailsActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); }
@Override public int getCount() { return mAdapter.getCount(); }