GridLayoutManager.DefaultSpanSizeLookup

class GridLayoutManager.DefaultSpanSizeLookup : GridLayoutManager.SpanSizeLookup


Default implementation for SpanSizeLookup. Each item occupies 1 span.

Summary

Public constructors

Public functions

Int
getSpanIndex(position: Int, spanCount: Int)

Returns the final span index of the provided position.

Int
getSpanSize(position: Int)

Returns the number of span occupied by the item at position.

Inherited functions

From androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup
Int
getSpanGroupIndex(adapterPosition: Int, spanCount: Int)

Returns the index of the group this position belongs.

Unit

Clears the span group index cache.

Unit

Clears the span index cache.

Boolean

Returns whether results of getSpanGroupIndex method are cached or not.

Boolean

Returns whether results of getSpanIndex method are cached or not.

Unit
setSpanGroupIndexCacheEnabled(cacheSpanGroupIndices: Boolean)

Sets whether the results of getSpanGroupIndex method should be cached or not.

Unit
setSpanIndexCacheEnabled(cacheSpanIndices: Boolean)

Sets whether the results of getSpanIndex method should be cached or not.

Public constructors

DefaultSpanSizeLookup

Added in 1.0.0
DefaultSpanSizeLookup()

Public functions

getSpanIndex

fun getSpanIndex(position: Int, spanCount: Int): Int

Returns the final span index of the provided position.

If getOrientation is VERTICAL, this is a column value. If getOrientation is HORIZONTAL, this is a row value.

If you have a faster way to calculate span index for your items, you should override this method. Otherwise, you should enable span index cache (setSpanIndexCacheEnabled) for better performance. When caching is disabled, default implementation traverses all items from 0 to position. When caching is enabled, it calculates from the closest cached value before the position.

If you override this method, you need to make sure it is consistent with getSpanSize. GridLayoutManager does not call this method for each item. It is called only for the reference item and rest of the items are assigned to spans based on the reference item. For example, you cannot assign a position to span 2 while span 1 is empty.

Note that span offsets always start with 0 and are not affected by RTL.

Parameters
position: Int

The position of the item

spanCount: Int

The total number of spans in the grid

Returns
Int

The final span position of the item. Should be between 0 (inclusive) and spanCount(exclusive)

getSpanSize

Added in 1.4.0-alpha01
fun getSpanSize(position: Int): Int

Returns the number of span occupied by the item at position.

Parameters
position: Int

The adapter position of the item

Returns
Int

The number of spans occupied by the item at the provided position