RecyclerView.LayoutManager

public static abstract class RecyclerView.LayoutManager
extends Object

java.lang.Object
   ↳ androidx.recyclerview.widget.RecyclerView.LayoutManager


A LayoutManager is responsible for measuring and positioning item views within a RecyclerView as well as determining the policy for when to recycle item views that are no longer visible to the user. By changing the LayoutManager a RecyclerView can be used to implement a standard vertically scrolling list, a uniform grid, staggered grids, horizontally scrolling collections and more. Several stock layout managers are provided for general use.

If the LayoutManager specifies a default constructor or one with the signature (Context, AttributeSet, int, int), RecyclerView will instantiate and set the LayoutManager when being inflated. Most used properties can be then obtained from getProperties(Context, AttributeSet, int, int). In case a LayoutManager specifies both constructors, the non-default constructor will take precedence.

Summary

Nested classes

interface RecyclerView.LayoutManager.LayoutPrefetchRegistry

Interface for LayoutManagers to request items to be prefetched, based on position, with specified distance from viewport, which indicates priority. 

class RecyclerView.LayoutManager.Properties

Some general properties that a LayoutManager may want to use. 

Public constructors

LayoutManager()

Public methods

void addDisappearingView(View child, int index)

To be called only during onLayoutChildren(Recycler, State) to add a view to the layout that is known to be going away, either because it has been removed or because it is actually not in the visible portion of the container but is being laid out in order to inform RecyclerView in how to animate the item out of view.

void addDisappearingView(View child)

To be called only during onLayoutChildren(Recycler, State) to add a view to the layout that is known to be going away, either because it has been removed or because it is actually not in the visible portion of the container but is being laid out in order to inform RecyclerView in how to animate the item out of view.

void addView(View child, int index)

Add a view to the currently attached RecyclerView if needed.

void addView(View child)

Add a view to the currently attached RecyclerView if needed.

void assertInLayoutOrScroll(String message)

Checks if RecyclerView is in the middle of a layout or scroll and throws an IllegalStateException if it is not.

void assertNotInLayoutOrScroll(String message)

Checks if RecyclerView is in the middle of a layout or scroll and throws an IllegalStateException if it is.

void attachView(View child)

Reattach a previously detached view.

void attachView(View child, int index, RecyclerView.LayoutParams lp)

Reattach a previously detached view.

void attachView(View child, int index)

Reattach a previously detached view.

void calculateItemDecorationsForChild(View child, Rect outRect)

Calculates the item decor insets applied to the given child and updates the provided Rect instance with the inset values.

boolean canScrollHorizontally()

Query if horizontal scrolling is currently supported.

boolean canScrollVertically()

Query if vertical scrolling is currently supported.

boolean checkLayoutParams(RecyclerView.LayoutParams lp)

Determines the validity of the supplied LayoutParams object.

static int chooseSize(int spec, int desired, int min)

Chooses a size from the given specs and parameters that is closest to the desired size and also complies with the spec.

void collectAdjacentPrefetchPositions(int dx, int dy, RecyclerView.State state, RecyclerView.LayoutManager.LayoutPrefetchRegistry layoutPrefetchRegistry)

Gather all positions from the LayoutManager to be prefetched, given specified momentum.

void collectInitialPrefetchPositions(int adapterItemCount, RecyclerView.LayoutManager.LayoutPrefetchRegistry layoutPrefetchRegistry)

Gather all positions from the LayoutManager to be prefetched in preperation for its RecyclerView to come on screen, due to the movement of another, containing RecyclerView.

int computeHorizontalScrollExtent(RecyclerView.State state)

Override this method if you want to support scroll bars.

int computeHorizontalScrollOffset(RecyclerView.State state)

Override this method if you want to support scroll bars.

int computeHorizontalScrollRange(RecyclerView.State state)

Override this method if you want to support scroll bars.

int computeVerticalScrollExtent(RecyclerView.State state)

Override this method if you want to support scroll bars.

int computeVerticalScrollOffset(RecyclerView.State state)

Override this method if you want to support scroll bars.

int computeVerticalScrollRange(RecyclerView.State state)

Override this method if you want to support scroll bars.

void detachAndScrapAttachedViews(RecyclerView.Recycler recycler)

Temporarily detach and scrap all currently attached child views.

void detachAndScrapView(View child, RecyclerView.Recycler recycler)

Detach a child view and add it to a Recycler's scrap heap.

void detachAndScrapViewAt(int index, RecyclerView.Recycler recycler)

Detach a child view and add it to a Recycler's scrap heap.

void detachView(View child)

Temporarily detach a child view.

void detachViewAt(int index)

Temporarily detach a child view.

void endAnimation(View view)

Ends all animations on the view created by the RecyclerView.ItemAnimator.

View findContainingItemView(View view)

Traverses the ancestors of the given view and returns the item view that contains it and also a direct child of the LayoutManager.

View findViewByPosition(int position)

Finds the view which represents the given adapter position.

abstract RecyclerView.LayoutParams generateDefaultLayoutParams()

Create a default LayoutParams object for a child of the RecyclerView.

RecyclerView.LayoutParams generateLayoutParams(Context c, AttributeSet attrs)

Create a LayoutParams object suitable for this LayoutManager from an inflated layout resource.

RecyclerView.LayoutParams generateLayoutParams(ViewGroup.LayoutParams lp)

Create a LayoutParams object suitable for this LayoutManager, copying relevant values from the supplied LayoutParams object if possible.

int getBaseline()

Returns offset of the RecyclerView's text baseline from the its top boundary.

int getBottomDecorationHeight(View child)

Returns the total height of item decorations applied to child's bottom.

View getChildAt(int index)

Return the child view at the given index

int getChildCount()

Return the current number of child views attached to the parent RecyclerView.

static int getChildMeasureSpec(int parentSize, int parentMode, int padding, int childDimension, boolean canScroll)

Calculate a MeasureSpec value for measuring a child view in one dimension.

static int getChildMeasureSpec(int parentSize, int padding, int childDimension, boolean canScroll)

This method is deprecated. use getChildMeasureSpec(int, int, int, int, boolean)

boolean getClipToPadding()

Check if the RecyclerView is configured to clip child views to its padding.

int getColumnCountForAccessibility(RecyclerView.Recycler recycler, RecyclerView.State state)

Returns the number of columns for accessibility.

int getDecoratedBottom(View child)

Returns the bottom edge of the given child view within its parent, offset by any applied ItemDecorations.

void getDecoratedBoundsWithMargins(View view, Rect outBounds)

Returns the bounds of the view including its decoration and margins.

int getDecoratedLeft(View child)

Returns the left edge of the given child view within its parent, offset by any applied ItemDecorations.

int getDecoratedMeasuredHeight(View child)

Returns the measured height of the given child, plus the additional size of any insets applied by ItemDecorations.

int getDecoratedMeasuredWidth(View child)

Returns the measured width of the given child, plus the additional size of any insets applied by ItemDecorations.

int getDecoratedRight(View child)

Returns the right edge of the given child view within its parent, offset by any applied ItemDecorations.

int getDecoratedTop(View child)

Returns the top edge of the given child view within its parent, offset by any applied ItemDecorations.

View getFocusedChild()

Returns the item View which has or contains focus.

int getHeight()

Returns the height that is currently relevant to the LayoutManager.

int getHeightMode()

Return the height measurement spec mode that is currently relevant to the LayoutManager.

int getItemCount()

Returns the number of items in the adapter bound to the parent RecyclerView.

int getItemViewType(View view)

Returns the View type defined by the adapter.

int getLayoutDirection()

Returns the resolved layout direction for this RecyclerView.

int getLeftDecorationWidth(View child)

Returns the total width of item decorations applied to child's left.

int getMinimumHeight()
int getMinimumWidth()
int getPaddingBottom()

Return the bottom padding of the parent RecyclerView

int getPaddingEnd()

Return the end padding of the parent RecyclerView

int getPaddingLeft()

Return the left padding of the parent RecyclerView

int getPaddingRight()

Return the right padding of the parent RecyclerView

int getPaddingStart()

Return the start padding of the parent RecyclerView

int getPaddingTop()

Return the top padding of the parent RecyclerView

int getPosition(View view)

Returns the adapter position of the item represented by the given View.

static RecyclerView.LayoutManager.Properties getProperties(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

Parse the xml attributes to get the most common properties used by layout managers.

int getRightDecorationWidth(View child)

Returns the total width of item decorations applied to child's right.

int getRowCountForAccessibility(RecyclerView.Recycler recycler, RecyclerView.State state)

Returns the number of rows for accessibility.

int getSelectionModeForAccessibility(RecyclerView.Recycler recycler, RecyclerView.State state)

Returns the selection mode for accessibility.

int getTopDecorationHeight(View child)

Returns the total height of item decorations applied to child's top.

void getTransformedBoundingBox(View child, boolean includeDecorInsets, Rect out)

Calculates the bounding box of the View while taking into account its matrix changes (translation, scale etc) with respect to the RecyclerView.

int </