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 | |
---|---|
<init>() 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 fungetItemOffsets(
@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 |
View: The child view to decorate |
parent |
RecyclerView: RecyclerView this ItemDecoration is decorating |
state |
RecyclerView.State: 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 |
RecyclerView: RecyclerView this ItemDecoration is drawing into |
state |
RecyclerView.State: The current state of RecyclerView |
onDraw
open funonDraw(
@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 |
RecyclerView: RecyclerView this ItemDecoration is drawing into |
state |
RecyclerView.State: The current state of RecyclerView. |
onDrawOver
open funonDrawOver(
@NonNull c: Canvas,
@NonNull parent: RecyclerView
): Unit
Deprecated: Override onDrawOver(Canvas, RecyclerView, RecyclerView.State)