private void setItemDecoration(int columns) { if (itemOffsetDecoration != null) { recyclerView.removeItemDecoration(itemOffsetDecoration); } itemOffsetDecoration = new GridSpacingItemDecoration( columns, context.getResources().getDimensionPixelSize(R.dimen.ef_item_padding), false ); recyclerView.addItemDecoration(itemOffsetDecoration); layoutManager.setSpanCount(columns); }
private void setItemDecoration(int columns) { if (itemOffsetDecoration != null) { recyclerView.removeItemDecoration(itemOffsetDecoration); } itemOffsetDecoration = new GridSpacingItemDecoration(columns, context.getResources().getDimensionPixelSize(R.dimen.imagepicker_item_padding), false ); recyclerView.addItemDecoration(itemOffsetDecoration); layoutManager.setSpanCount(columns); }
@Override public void onGlobalLayout() { final int recyclerViewWidth = mRecyclerView.getWidth(); if (recyclerViewWidth > 0) { // layout finished so remove observer mRecyclerView.getViewTreeObserver().removeOnGlobalLayoutListener(this); final float gridItemWidth = getResources().getDimensionPixelSize(R.dimen.grid_item_height); // the minimum spancount should always be 2 final int newSpanCount = Math.max((int) Math.floor(recyclerViewWidth / gridItemWidth), 2); final GridLayoutManager layoutManager = (GridLayoutManager) mRecyclerView.getLayoutManager(); layoutManager.setSpanCount(newSpanCount); mRecyclerView.requestLayout(); // pass the columnWidth to the adapter to adjust the size of the griditems final int columnWidth = recyclerViewWidth / newSpanCount; ((AlbumsRecyclerViewAdapter) mRecyclerView.getAdapter()).setItemSize(columnWidth); } } });
public void setFolderAdapter(List<Folder> folders) { folderAdapter.setData(folders); setItemDecoration(folderColumns); recyclerView.setAdapter(folderAdapter); if (foldersState != null) { layoutManager.setSpanCount(folderColumns); recyclerView.getLayoutManager().onRestoreInstanceState(foldersState); } }
public void setFolderAdapter(List<Folder> folders) { folderAdapter.setData(folders); setItemDecoration(folderColumns); recyclerView.setAdapter(folderAdapter); isShowingFolder = true; if (foldersState != null) { layoutManager.setSpanCount(folderColumns); recyclerView.getLayoutManager().onRestoreInstanceState(foldersState); } }