LinearLayoutManager


public class LinearLayoutManager extends RecyclerView.LayoutManager implements ItemTouchHelper.ViewDropHandler, RecyclerView.SmoothScroller.ScrollVectorProvider

Known direct subclasses
GridLayoutManager

A RecyclerView.LayoutManager implementations that lays out items in a grid.

WearableLinearLayoutManager

This wear-specific implementation of LinearLayoutManager provides basic offsetting logic for updating child layout.


A RecyclerView.LayoutManager implementation which provides similar functionality to android.widget.ListView.

Summary

Nested types

Constants

static final int
static final int
INVALID_OFFSET = -2147483648
static final int

Public constructors

Creates a vertical LinearLayoutManager

LinearLayoutManager(
    Context context,
    int orientation,
    boolean reverseLayout
)
LinearLayoutManager(
    Context context,
    AttributeSet attrs,
    int defStyleAttr,
    int defStyleRes
)

Constructor used when layout manager is set in XML by RecyclerView attribute "layoutManager".

Public methods

void

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

boolean
boolean
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

Override this method if you want to support scroll bars.

int

Override this method if you want to support scroll bars.

int

Override this method if you want to support scroll bars.

PointF
computeScrollVectorForPosition(int targetPosition)

Should calculate the vector that points to the direction where the target position can be found.

int

Override this method if you want to support scroll bars.

int

Override this method if you want to support scroll bars.

int

Override this method if you want to support scroll bars.

int

Returns the adapter position of the first fully visible view.

int

Returns the adapter position of the first visible view.

int

Returns the adapter position of the last fully visible view.

int

Returns the adapter position of the last visible view.

View
findViewByPosition(int position)

Finds the view which represents the given adapter position.

RecyclerView.LayoutParams

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

int

Gets the number of items to prefetch in collectInitialPrefetchPositions, which defines how many inner items should be prefetched when this LayoutManager's RecyclerView is nested inside another RecyclerView.

int

Returns the current orientation of the layout.

boolean

Returns whether LayoutManager will recycle its children when it is detached from RecyclerView.

boolean

Returns if views are laid out from the opposite direction of the layout.

boolean
boolean

Returns whether the measuring pass of layout should use the AutoMeasure mechanism of RecyclerView or if it should be done by the LayoutManager's implementation of onMeasure.

boolean

Query if the layout is in reverse order.

boolean

Returns the current state of the smooth scrollbar feature.

void

Called when this LayoutManager is detached from its parent RecyclerView or when its parent RecyclerView is detached from its window.

View
onFocusSearchFailed(
    View focused,
    int direction,
    RecyclerView.Recycler recycler,
    RecyclerView.State state
)

Called when searching for a focusable view in the given direction has failed for the current content of the RecyclerView.

void
void

Called by the AccessibilityDelegate when the information about the current layout should be populated.

void

Lay out all relevant child views from the given adapter.

void

Called after a full layout calculation is finished.

void

Called when the RecyclerView is ready to restore the state based on a previous RecyclerView.

Parcelable

Called when the LayoutManager should save its state.

void
prepareForDrop(@NonNull View view, @NonNull View target, int x, int y)

Called by the after a View is dropped over another View.

int
scrollHorizontallyBy(
    int dx,
    RecyclerView.Recycler recycler,
    RecyclerView.State state
)

Scroll horizontally by dx pixels in screen coordinates and return the distance traveled.

void
scrollToPosition(int position)

Scroll the RecyclerView to make the position visible.

void
scrollToPositionWithOffset(int position, int offset)

Scroll to the specified adapter position with the given offset from resolved layout start.

int
scrollVerticallyBy(
    int dy,
    RecyclerView.Recycler recycler,
    RecyclerView.State state
)

Scroll vertically by dy pixels in screen coordinates and return the distance traveled.

void

Sets the number of items to prefetch in collectInitialPrefetchPositions, which defines how many inner items should be prefetched when this LayoutManager's RecyclerView is nested inside another RecyclerView.

void
setOrientation(int orientation)

Sets the orientation of the layout.

void
setRecycleChildrenOnDetach(boolean recycleChildrenOnDetach)

Set whether LayoutManager will recycle its children when it is detached from RecyclerView.

void
setReverseLayout(boolean reverseLayout)

Used to reverse item traversal and layout order.

void
setSmoothScrollbarEnabled(boolean enabled)

When smooth scrollbar is enabled, the position and size of the scrollbar thumb is computed based on the number of visible pixels in the visible items.

void
setStackFromEnd(boolean stackFromEnd)

Compatibility support for setStackFromBottom

void
smoothScrollToPosition(
    RecyclerView recyclerView,
    RecyclerView.State state,
    int position
)

Smooth scroll to the specified adapter position.

boolean

Returns whether this LayoutManager supports "predictive item animations".

Protected methods

void
calculateExtraLayoutSpace(
    @NonNull RecyclerView.State state,
    @NonNull int[] extraLayoutSpace
)

Calculates the amount of extra space (in pixels) that should be laid out by and stores the result in extraLayoutSpace.

int

This method is deprecated.

Use calculateExtraLayoutSpace instead.

boolean

Inherited methods

From androidx.recyclerview.widget.RecyclerView.LayoutManager
void

To be called only during onLayoutChildren 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, int index)

To be called only during onLayoutChildren 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)

Add a view to the currently attached RecyclerView if needed.

void
addView(View child, int index)

Add a view to the currently attached RecyclerView if needed.

void

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

void

Reattach a previously detached view.

void
attachView(@NonNull View child, int index)

Reattach a previously detached view.

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

Reattach a previously detached view.

void
calculateItemDecorationsForChild(
    @NonNull View child,
    @NonNull Rect outRect
)

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

boolean

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

Temporarily detach and scrap all currently attached child views.

void
detachAndScrapView(
    @NonNull View child,
    @NonNull RecyclerView.Recycler recycler
)

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

void

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

void

Temporarily detach a child view.

void
detachViewAt(int index)

Temporarily detach a child view.

void

Ends all animations on the view created by the ItemAnimator.

@Nullable View

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

RecyclerView.LayoutParams

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

RecyclerView.LayoutParams

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

int

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

int

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

@Nullable View
getChildAt(int index)

Return the child view at the given index

int

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

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

This method is deprecated.

use getChildMeasureSpec

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.

boolean

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

int

Returns the number of columns for accessibility.

int

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

void

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

int

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

int

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

int

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

int

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

int

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

@Nullable View

Returns the item View which has or contains focus.

@Px int