GridLayoutManager


public class GridLayoutManager extends LinearLayoutManager


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

By default, each item occupies 1 span. You can change it by providing a custom SpanSizeLookup instance via setSpanSizeLookup.

Summary

Nested types

Default implementation for SpanSizeLookup.

LayoutParams used by GridLayoutManager.

public abstract class GridLayoutManager.SpanSizeLookup

A helper class to provide the number of spans each item occupies.

Constants

static final int

Public constructors

GridLayoutManager(Context context, int spanCount)

Creates a vertical GridLayoutManager

GridLayoutManager(
    Context context,
    AttributeSet attrs,
    int defStyleAttr,
    int defStyleRes
)

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

GridLayoutManager(
    Context context,
    int spanCount,
    int orientation,
    boolean reverseLayout
)

Public methods

boolean

Determines the validity of the supplied LayoutParams object.

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

Override this method if you want to support scroll bars.

RecyclerView.LayoutParams

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

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 the number of columns for accessibility.

int

Returns the number of rows for accessibility.

int

Returns the number of spans laid out by this grid.

GridLayoutManager.SpanSizeLookup

Returns the current SpanSizeLookup used by the GridLayoutManager.

boolean

Returns true if the scroll offset and scroll range calculations take account of span information.

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

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

void

Called by the AccessibilityDelegate when the accessibility information for a specific item should be populated.

void
onItemsAdded(
    RecyclerView recyclerView,
    int positionStart,
    int itemCount
)

Called when items have been added to the adapter.

void

Called in response to a call to notifyDataSetChanged or swapAdapter ()} and signals that the the entire data set has changed.

void
onItemsMoved(RecyclerView recyclerView, int from, int to, int itemCount)

Called when an item is moved withing the adapter.

void
onItemsRemoved(
    RecyclerView recyclerView,
    int positionStart,
    int itemCount
)

Called when items have been removed from the adapter.

void
onItemsUpdated(
    RecyclerView recyclerView,
    int positionStart,
    int itemCount,
    Object payload
)

Called when items have been changed in the adapter and with optional payload.

void

Lay out all relevant child views from the given adapter.

void

Called after a full layout calculation is finished.

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

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

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

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

void
setMeasuredDimension(Rect childrenBounds, int wSpec, int hSpec)

Sets the measured dimensions from the given bounding box of the children and the measurement specs that were passed into onMeasure.

void
setSpanCount(int spanCount)

Sets the number of spans to be laid out.

void

Sets the source to get the number of spans occupied by each item in the adapter.

void
setStackFromEnd(boolean stackFromEnd)

stackFromEnd is not supported by GridLayoutManager.

void
setUsingSpansToEstimateScrollbarDimensions(
    boolean useSpansToEstimateScrollBarDimensions
)

When this flag is set, the scroll offset and scroll range calculations will take account of span information.

boolean

Returns whether this LayoutManager supports "predictive item animations".

Inherited Constants

From androidx.recyclerview.widget.LinearLayoutManager
static final int
static final int
INVALID_OFFSET = -2147483648
static final int

Inherited methods

From androidx.recyclerview.widget.LinearLayoutManager
void

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

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.

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.

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

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.

int

This method is deprecated.

Use calculateExtraLayoutSpace instead.

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

void
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.

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.

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
smoothScrollToPosition(
    RecyclerView recyclerView,
    RecyclerView.State state,
    int position
)

Smooth scroll to the specified adapter position.

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.

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

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

Override this method if you want to support scroll bars.

int