Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.graphics.Rect;
- import android.view.View;
- import androidx.annotation.NonNull;
- import androidx.recyclerview.widget.RecyclerView;
- public class MarginItemDecoration extends RecyclerView.ItemDecoration {
- private final int columnCount;
- private final int margin;
- public MarginItemDecoration(int margin, int columnCount) {
- this.columnCount = columnCount;
- this.margin = margin;
- }
- @Override
- public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
- super.getItemOffsets(outRect, view, parent, state);
- int position = parent.getChildAdapterPosition(view);
- boolean firstInRow = position % columnCount == 0;
- boolean lastInRow = position % columnCount == columnCount - 1;
- boolean isInLastRow = position > state.getItemCount() - columnCount - 1;
- //top
- outRect.top = margin;
- //left
- if (firstInRow) outRect.left = margin;
- else outRect.left = margin / 2;
- //right
- if (lastInRow) outRect.right = margin;
- else outRect.right = margin / 2;
- //bottom
- if (isInLastRow) outRect.bottom = margin;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement