private void initGrid() { // Setting up images grid final int cols = getResources().getInteger(R.integer.images_grid_columns); mViews.grid.setLayoutManager(new GridLayoutManager(this, cols)); mViews.grid.setItemAnimator(new DefaultItemAnimator()); mGridAdapter = new FlickrPhotoListAdapter(this); mGridAdapter.setLoadingOffset(PAGE_SIZE / 2); mGridAdapter.setCallbacks( new EndlessRecyclerAdapter.LoaderCallbacks() { @Override public boolean canLoadNextItems() { return mGridAdapter.canLoadNext(); } @Override public void loadNextItems() { // We should either load all items that were loaded before state save / restore, // or next page if we already loaded all previously shown items int count = Math.max(mPhotoCount, mGridAdapter.getCount() + PAGE_SIZE); Events.create(FlickrApi.LOAD_IMAGES_EVENT).param(count).post(); } }); mViews.grid.setAdapter(mGridAdapter); }