# GridLayoutManager.DefaultSpanSizeLookup

# GridLayoutManager.DefaultSpanSizeLookup

Artifact:[androidx.recyclerview:recyclerview](https://developer.android.com/jetpack/androidx/releases/recyclerview)  
[View Source](https://cs.android.com/search?q=file:androidx/recyclerview/widget/GridLayoutManager.java+class:androidx.recyclerview.widget.GridLayoutManager.DefaultSpanSizeLookup)  
Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/recyclerview#1.0.0)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/recyclerview/widget/GridLayoutManager.DefaultSpanSizeLookup "View this page in Java")

<br />

```
class GridLayoutManager.DefaultSpanSizeLookup : GridLayoutManager.SpanSizeLookup
```

<br />

|---|---|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)                                                                                                                |||
| ↳ | [androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup)                  ||
|   | ↳ | [androidx.recyclerview.widget.GridLayoutManager.DefaultSpanSizeLookup](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.DefaultSpanSizeLookup) |

*** ** * ** ***

Default implementation for[SpanSizeLookup](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup). Each item occupies 1 span.

## Summary

|                                                                         ### Public constructors                                                                          |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [DefaultSpanSizeLookup](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.DefaultSpanSizeLookup#DefaultSpanSizeLookup())`()` |

|                            ### Public functions                             |
|-----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [getSpanIndex](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.DefaultSpanSizeLookup#getSpanIndex(int,int))`(position: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, spanCount: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Returns the final span index of the provided position. |
| [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [getSpanSize](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.DefaultSpanSizeLookup#getSpanSize(int))`(position: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Returns the number of span occupied by the item at`position`.                                                                                          |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ### Inherited functions                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| From[androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup) |-------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)         | [getSpanGroupIndex](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#getSpanGroupIndex(int,int))`(adapterPosition: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, spanCount: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Returns the index of the group this position belongs.                                                                                                              | | [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [invalidateSpanGroupIndexCache](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#invalidateSpanGroupIndexCache())`()` Clears the span group index cache.                                                                                                                                                                                                                                                                                                        | | [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [invalidateSpanIndexCache](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#invalidateSpanIndexCache())`()` Clears the span index cache.                                                                                                                                                                                                                                                                                                                        | | [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isSpanGroupIndexCacheEnabled](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#isSpanGroupIndexCacheEnabled())`()` Returns whether results of[getSpanGroupIndex](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#getSpanGroupIndex(int,int))method are cached or not.                                                                                                                             | | [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isSpanIndexCacheEnabled](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#isSpanIndexCacheEnabled())`()` Returns whether results of[getSpanIndex](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#getSpanIndex(int,int))method are cached or not.                                                                                                                                                 | | [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [setSpanGroupIndexCacheEnabled](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#setSpanGroupIndexCacheEnabled(boolean))`(cacheSpanGroupIndices: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Sets whether the results of[getSpanGroupIndex](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#getSpanGroupIndex(int,int))method should be cached or not. | | [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [setSpanIndexCacheEnabled](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#setSpanIndexCacheEnabled(boolean))`(cacheSpanIndices: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Sets whether the results of[getSpanIndex](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#getSpanIndex(int,int))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](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/LinearLayoutManager#getOrientation())is[VERTICAL](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/LinearLayoutManager#VERTICAL()), this is a column value. If[getOrientation](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/LinearLayoutManager#getOrientation())is[HORIZONTAL](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/LinearLayoutManager#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](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#setSpanIndexCacheEnabled(boolean))) 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](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup#getSpanSize(int)). 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](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)  | The position of the item              |
| `spanCount: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | The total number of spans in the grid |

|                                   Returns                                   |
|-----------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | The final span position of the item. Should be between 0 (inclusive) and`spanCount`(exclusive) |

### getSpanSize

Added in[1.4.0](https://developer.android.com/jetpack/androidx/releases/recyclerview#1.4.0)  

```
fun getSpanSize(position: Int): Int
```

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

|                                       Parameters                                        |
|-----------------------------------------------------------------------------------------|----------------------------------|
| `position: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | The adapter position of the item |

|                                   Returns                                   |
|-----------------------------------------------------------------------------|-------------------------------------------------------------------|
| [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | The number of spans occupied by the item at the provided position |