It's happening now, watch the livestream.

ItemDecoration

abstract class ItemDecoration
kotlin.Any
   ↳ androidx.recyclerview.widget.RecyclerView.ItemDecoration

An ItemDecoration allows the application to add a special drawing and layout offset to specific item views from the adapter's data set. This can be useful for drawing dividers between items, highlights, visual grouping boundaries and more.

All ItemDecorations are drawn in the order they were added, before the item views (in onDraw() and after the items (in ItemDecoration#onDrawOver(Canvas, RecyclerView, * RecyclerView.State).

Summary

Public constructors

An ItemDecoration allows the application to add a special drawing and layout offset to specific item views from the adapter's data set.

Public methods

open Unit
getItemOffsets(@NonNull outRect: Rect, itemPosition: Int, @NonNull parent: RecyclerView)

open Unit
getItemOffsets(@NonNull outRect: Rect, @NonNull view: View, @NonNull parent: RecyclerView, @NonNull state: RecyclerView.State)

Retrieve any offsets for the given item.

open Unit
onDraw(@NonNull c: Canvas, @NonNull parent: RecyclerView, @NonNull state: RecyclerView.State)

Draw any appropriate decorations into the Canvas supplied to the RecyclerView.

open Unit
onDraw(@NonNull c: Canvas, @NonNull parent: RecyclerView)

open Unit
onDrawOver(@NonNull c: Canvas, @NonNull parent: RecyclerView, @NonNull state: RecyclerView.State)

Draw any appropriate decorations into the Canvas supplied to the RecyclerView.

open Unit
onDrawOver(@NonNull c: Canvas, @NonNull parent: RecyclerView)

Public constructors

<init>

ItemDecoration()

An ItemDecoration allows the application to add a special drawing and layout offset to specific item views from the adapter's data set. This can be useful for drawing dividers between items, highlights, visual grouping boundaries and more.

All ItemDecorations are drawn in the order they were added, before the item views (in onDraw() and after the items (in ItemDecoration#onDrawOver(Canvas, RecyclerView, * RecyclerView.State).

Public methods

getItemOffsets

open fun getItemOffsets(@NonNull outRect: Rect, itemPosition: Int, @NonNull parent: RecyclerView): Unit

Deprecated: Use getItemOffsets(Rect, View, RecyclerView, State)

getItemOffsets

open fun getItemOffsets(@NonNull outRect: Rect, @NonNull view: View, @NonNull parent: RecyclerView, @NonNull state: RecyclerView.State): Unit

Retrieve any offsets for the given item. Each field of outRect specifies the number of pixels that the item view should be inset by, similar to padding or margin. The default implementation sets the bounds of outRect to 0 and returns.

If this ItemDecoration does not affect the positioning of item views, it should set all four fields of outRect (left, top, right, bottom) to zero before returning.

If you need to access Adapter for additional data, you can call RecyclerView#getChildAdapterPosition(View) to get the adapter position of the View.

Parameters
outRect Rect: Rect to receive the output.
view Rect: The child view to decorate
parent Rect: RecyclerView this ItemDecoration is decorating
state Rect: The current state of RecyclerView.

onDraw

open fun onDraw(@NonNull c: Canvas, @NonNull parent: RecyclerView, @NonNull state: RecyclerView.State): Unit

Draw any appropriate decorations into the Canvas supplied to the RecyclerView. Any content drawn by this method will be drawn before the item views are drawn, and will thus appear underneath the views.

Parameters
c Canvas: Canvas to draw into
parent Canvas: RecyclerView this ItemDecoration is drawing into
state Canvas: The current state of RecyclerView

onDraw

open fun onDraw(@NonNull c: Canvas, @NonNull parent: RecyclerView): Unit

Deprecated: Override onDraw(Canvas, RecyclerView, RecyclerView.State)

onDrawOver

open fun onDrawOver(@NonNull c: Canvas, @NonNull parent: RecyclerView, @NonNull state: RecyclerView.State): Unit

Draw any appropriate decorations into the Canvas supplied to the RecyclerView. Any content drawn by this method will be drawn after the item views are drawn and will thus appear over the views.

Parameters
c Canvas: Canvas to draw into
parent Canvas: RecyclerView this ItemDecoration is drawing into
state Canvas: The current state of RecyclerView.

onDrawOver

open fun onDrawOver(@NonNull c: Canvas, @NonNull parent: RecyclerView): Unit

Deprecated: Override onDrawOver(Canvas, RecyclerView, RecyclerView.State)